从Windows应用程序获取正在运行的java应用程序的进程ID

时间:2014-10-14 07:03:56

标签: java c++ windows winapi

我正在使用 CreateProcess() win32 API启动java应用程序(testApp.exe)。 PROCESS_INFORMATION 结构返回一个进程ID,该进程ID在taskmanager或 EnumProcesses() API的PID列表中不存在。我可以看到有一个 javaw.exe 启动时有一些不同的进程ID。此javaw.exe进程ID与PROCESS_INFORMATION结构返回的PID不同。

如何获得正确的PID。

我想启动这个java应用程序,稍后我想使用PID终止这个java应用程序。

1 个答案:

答案 0 :(得分:0)

CreateProcess()实际上不可能报告TaskManager没有看到的PID(除非存在隐藏PID的低级别木马/ rootkit)。在进程结束并关闭CreateProcess()返回的句柄之前,该进程存在且其PID不会消失。

最有可能发生的事情是,在您有机会查看TaskManager或枚举代码中正在运行的进程之前,从CreateProcess()关闭句柄,并且有问题的新进程正在退出。