Fehlermeldung



  • Hallo Leute,
    Mir ging es darum den handle eines beliebigen Prozesses durch seinen Namen ( z.b process.exe ) zu kriegen. Dabei habe ich diesen Code benutzt:
    http://stackoverflow.com/questions/865152/how-can-i-get-a-process-handle-by-its-name-in-c

    bzw.

    PROCESSENTRY32 entry;
    entry.dwSize = sizeof(PROCESSENTRY32);

    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);

    if (Process32First(snapshot, &entry) == TRUE)
    {
    while (Process32Next(snapshot, &entry) == TRUE)
    {
    if (stricmp(entry.szExeFile, "target.exe") == 0)
    {
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);

    // Do stuff..

    CloseHandle(hProcess);
    }
    }
    }

    CloseHandle(snapshot);

    Das Problem liegt anscheinend bei
    stricmp(entry.szExeFile, "target.exe")
    da anscheinend bei "entry" das Argument vom Typ ""WCHAR *"" mit dem Parameter vom Typ ""const char *"" inkompatibel ist.
    Nun bei vielen Usern von StackOverflow hat der Code einwandfrei funktioniert, da ich niemanden gefunden habe der das selbe Problem hat.
    ( Ja ich habe auch die Google Suche verwendet um das Problem zu finden )
    Auchwenn das Problem möglicherweise vor meiner Nase liegt, wäre es trotzdem hilfreich wenn mir jemand helfen könnte.
    Danke im voraus.



  • Versuch's mit _wcsicmp und L"target.exe"



  • Danke, hat funktioniert, trotzdem merkwürdig dass es bei vielen anderen auch so lief



  • Die waren ja auch schlau genug, das als ANSI anstatt UNICODE zu kompilieren.


Anmelden zum Antworten