Я запускаю Java-приложение (testApp.exe) с помощью API CreateProcess() win32. Структура PROCESS_INFORMATION возвращает мне идентификатор процесса, который не существует в списке PID в API taskmanager или EnumProcesses(). Я вижу, что один javaw.exe запущен с другим идентификатором процесса. этот идентификатор процесса javaw.exe отличается от PID, возвращаемого структурой PROCESS_INFORMATION.
Как я могу получить правильный PID.
Я хочу запустить это Java-приложение, и через некоторое время я хочу убить это приложение Java с помощью PID.
Для CreateProcess()
физически невозможно сообщить PID, который TaskManager не видит (если не существует трояна/руткита низкого уровня, который скрывает PID). Пока процесс не завершится И вы закроете дескрипторы, которые возвращает CreateProcess()
, процесс существует, и его PID не может исчезнуть.
Скорее всего, вы закрываете дескрипторы из CreateProcess()
, и новый процесс, о котором идет речь, выходит, прежде чем у вас появится возможность посмотреть в TaskManager или перечислить запущенные процессы в коде.