我想通过进程名称获取进程的句柄。
我有 PID 但当我使用openProcess
要始终获取句柄,它将返回 0 或 180,这是我用来使 PID 正常工作的函数
Handle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,False,PID);
我应该怎么办?
当您只知道进程名称时,没有直接的方法来获取进程句柄,除非您使用CreateProcess
.
相反,您可以使用CreateToolhelp32Snapshot http://msdn.microsoft.com/en-us/library/ms682489.aspx, Process32First http://msdn.microsoft.com/en-us/library/ms684834.aspx, and Process32Next http://msdn.microsoft.com/en-us/library/ms684836.aspx搜索具有您想要的名称的所有进程。请记住,可能有多个同名进程。这些函数会告诉您进程 ID。一旦你有了它,你就可以使用OpenProcess
,正如您已经演示的那样。如果OpenProcess
返回非零的值(例如 180),那么它就为您提供了有效的进程句柄。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)