Получение ID процесса

Рейтинг: -2Ответов: 1Опубликовано: 03.06.2023

Как исправить данную проблему, использую QT C++. Нужно получить PID запущенного приложения

DWORD GetProcessID(const char* processName)
{
    if (!processName) return 0;

    DWORD id = 0;
    HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

    if (hSnap) {
        PROCESSENTRY32 pe32 = { sizeof(PROCESSENTRY32) };
        if (Process32First(hSnap, &pe32)) {
            while (Process32Next(hSnap, &pe32)) {
                if (strcmp(processName, pe32.szExeFile) == 0) {
                    id = pe32.th32ProcessID;
                    break;
                }
            }
        }
        CloseHandle(hSnap);
    }
    return id;
}

QT PROJECT

Ответы

▲ 1

Да просто раз уж работаете с Unicode и широкими символами, то не используйте strcmp, каковая работает только для "узких".

wcscmp вам в помощь...

Да, и вместо const char* processName используйте широкую строку.