-
在获取进程的句柄时候使用的是根据进程id来获取句柄的方式,自然使用了OpenProcess这个函数,查MSDN:
- HANDLE WINAPI OpenProcess(
- In DWORD dwDesiredAccess,
- In BOOL bInheritHandle,
- In DWORD dwProcessId
-
);
首先函数返回的是个HANDLE,其中第一个参数是需要的权限,我就是在这个参数上出现了错误,使用PROCESS_ALL_ACCESS权限,该权限在win10下没有出现问题,但是程序运行在xp下面就是获取不到进程句柄,后来发现是这个权限问题,具体讨论可以参考 https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/eeb93be6-872c-4028-b0ae-cd873e089825/openprocess-error-in-windows-xp,后来改用PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_VM_OPERATION即可
关于使用OpenProcess的一个错误
最新推荐文章于 2023-01-03 11:30:06 发布
本文讨论了在Windows XP环境下使用OpenProcess函数获取进程句柄时遇到的问题,特别是与PROCESS_ALL_ACCESS权限相关的错误。文章指出,在XP系统中,直接使用此权限可能导致无法正确获取句柄,并提供了解决方案,即改用PROCESS_VM_READ|PROCESS_VM_WRITE|PROCESS_VM_OPERATION权限。
1038

被折叠的 条评论
为什么被折叠?



