OpenProcess初学者问题

HWNDhWnd=FindWindow(0,"扫雷");DWORDproid=GetWindowThreadProcessId(hWnd,NULL);HANDLEhPro... HWND hWnd = FindWindow(0, "扫雷");
DWORD proid = GetWindowThreadProcessId(hWnd, NULL);
HANDLE hPro = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proid);
cout << hWnd << endl;
cout << proid << endl;
cout << hPro << endl;

hWnd和proid都有值,但hPro是0,是哪里错了啊
HANDLE hPro = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proid);
这句有问题吗??
展开
 我来答
农楚0s
2011-08-16 · 超过22用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:26.3万
展开全部
把PROCESS_ALL_ACCESS改成下面这些PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ
也可以先提权再用PROCESS_ALL_ACCESS,提权代码你到网上搜一搜,一大堆。
另外本人菜鸟,只是按自己犯过的错误说下供参考是不是犯了同样的错误,我用VC
++2008试了下如下代码正确:
HWND hWnd=::FindWindow(NULL,_T("扫雷"));
DWORD ID;
LPDWORD PID=&ID;
::GetWindowThreadProcessId(hWnd,PID);
HANDLE hPro=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ,FALSE,ID);
luosiwei556
2011-08-25
知道答主
回答量:33
采纳率:0%
帮助的人:16.3万
展开全部
你的PROCESS_ALL_ACCESS常量声明没有
或者是声明错了
在模块中声明
Public Const PROCESS_ALL_ACCESS = &H1F0FFF
常量可以去MSDN查
MSDN是最好的查询手册
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-20
展开全部
不知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式