通过PID获取进程句柄

时间:2010-06-30 15:38:53

标签: delphi

我希望通过进程名称来获取进程的句柄。

我有PID,但是当我使用openProcess获取句柄时,它将返回0或180,我用来使PID正常工作的函数

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

我该怎么办?

1 个答案:

答案 0 :(得分:7)

除非您使用CreateProcess,否则没有直接的方法来获取流程句柄,除非您使用的是OpenProcess

相反,您可以使用CreateToolhelp32SnapshotProcess32FirstProcess32Next来搜索具有所需名称的所有流程。请记住,可能有多个具有相同名称的进程。这些函数会告诉您进程ID。完成后,您可以使用OpenProcess,就像您已经演示过的那样。如果{{1}}返回零以外的值(例如180),则它会为您提供有效的流程句柄。