我想通过进程名称获取进程的句柄.
我有PID,但当我openProcess
用来获取句柄时,它总是返回0或180,我用来使PID正常工作的功能
Handle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,False,PID);
我该怎么办?
除非您正在使用,否则没有直接的方法来获取进程句柄,只要您知道它的名称CreateProcess
.
相反,您可以使用CreateToolhelp32Snapshot
,Process32First
和Process32Next
搜索具有所需名称的所有进程.请记住,可能有多个具有相同名称的进程.这些函数会告诉您进程ID.一旦你有了,你可以使用OpenProcess
,正如你已经演示过的那样.如果OpenProcess
返回零以外的其他内容(例如180),则它会为您提供有效的进程句柄.