关于使用OpenProcess的一个错误

本文讨论了在Windows XP环境下使用OpenProcess函数获取进程句柄时遇到的问题,特别是与PROCESS_ALL_ACCESS权限相关的错误。文章指出,在XP系统中,直接使用此权限可能导致无法正确获取句柄,并提供了解决方案,即改用PROCESS_VM_READ|PROCESS_VM_WRITE|PROCESS_VM_OPERATION权限。
在获取进程的句柄时候使用的是根据进程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即可
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值