2014-10-14 3 views
0

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

Как я могу получить правильный PID.

Я хочу запустить это приложение java, и через некоторое время я хочу убить это приложение Java с помощью PID.

+0

Возможный дубликат http://stackoverflow.com/questions/5284139/how-do-i-find-the-process-id-pid-of-a-process-started-in-java – xpa1492

ответ

0

Должно быть физически невозможно, чтобы CreateProcess() сообщал PID, который TaskManager не видит (если не существует трояна/руткита низкого уровня, который скрывает PID). Пока процесс не завершится И вы закрываете дескрипторы, возвращаемые CreateProcess(), процесс существует, и его PID не может исчезнуть.

Скорее всего, вы закрываете ручки от CreateProcess(), и новый процесс, о котором идет речь, выходит, прежде чем у вас появится возможность посмотреть в TaskManager или перечислить запущенные процессы в коде.

Смежные вопросы