Как получить полное имя всех запущенных процессов, включая процессы ядра на windows - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь перечислить все процессы, запущенные в windows, аналогично тому, как это делает ProcessExplorer, однако я получаю множество неизвестных процессов, используя найденный код здесь

enter image description here

Я думаю, что это процессы ядра, но есть ли способ просмотреть их имена?

1 Ответ

1 голос
/ 31 января 2020

Причина, по которой вы видите <unknown> в названии процесса, заключается в том, что они являются системными процессами, как вы и предсказывали. OpenProcess, который пытается открыть с необходимыми разрешениями, терпит неудачу и по умолчанию неизвестен для системных процессов.

Вместо этого вы можете использовать WTSEnumerateSessions , если вы ищете только имена процессов и PID.

WTS_PROCESS_INFO* pWtsProcessInfo = NULL;
DWORD dwProcessCount = 0;
if (WTSEnumerateProcesses(NULL, NULL, 1, &pWtsProcessInfo, &dwProcessCount))    {
    for (DWORD i = 0; i < dwProcessCount; i++)      {
        printf("%ws : %d\n", pWtsProcessInfo[i].pProcessName, pWtsProcessInfo[i].ProcessId); // %s if the project is not in unicode
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...