我正在使用 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应用程序。
答案 0 :(得分:0)
CreateProcess()
实际上不可能报告TaskManager没有看到的PID(除非存在隐藏PID的低级别木马/ rootkit)。在进程结束并关闭CreateProcess()
返回的句柄之前,该进程存在且其PID不会消失。
最有可能发生的事情是,在您有机会查看TaskManager或枚举代码中正在运行的进程之前,从CreateProcess()
关闭句柄,并且有问题的新进程正在退出。