получить дескриптор процесса по PID - PullRequest
0 голосов
/ 30 июня 2010

Я хочу получить дескриптор процесса по имени процесса.

У меня есть PID, но когда я использую openProcess, чтобы получить дескриптор всегда, он вернет 0 или 180, функцию, которую я используючтобы PID работал правильно

Handle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,False,PID);

Что мне делать?

1 Ответ

7 голосов
/ 30 июня 2010

Нет прямого способа получить дескриптор процесса, когда все, что вам известно, это его имя, если вы не используете CreateProcess.

Вместо этого вы можете использовать CreateToolhelp32Snapshot, Process32First и Process32Next для поиска всех процессов с нужным именем. Имейте в виду, что может быть несколько процессов с одним и тем же именем. Эти функции сообщат вам идентификатор процесса. Получив это, вы можете использовать OpenProcess, как вы уже продемонстрировали. Если OpenProcess возвращает что-то, отличное от нуля (например, 180), то это дает вам действительный дескриптор процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...