-
-
[求助]请教高手一个奇怪问题!
-
发表于:
2008-11-30 03:14
4320
-
我在用C++编程的时候,在使用OPENPROCESS这函数的时候。无论传入什么样的PID,最后返回出来的句柄居然都是80。既不是0也不是NULL。非常奇怪,一个固定的数值,无论怎么改PID结果还是一样。枚举窗口时出现的问题,当枚举到指定窗口时,句柄和PID值都正常。就是hProcess是固定数值,无论枚举到的窗口是什么,他的数值都是80.穷尽头脑也想不到原因,请教各位高手
#include<windows.h>
BOOL __stdcall AProc(HWND,LPARAM);
HANDLE hProcess;
HWND hEnum;
DWORD EnumPID;
int __stdcall WinMain(HINSTANCE hInstance,HINSTANCE,LPSTR,int)
{
::EnumWindows(AProc,0);
return 0;
}
BOOL __stdcall AProc(HWND hwnd,LPARAM lParam)
{
char CWtext[256];
char *pzx="中文";
int len=::GetWindowText(hwnd,CWtext,256);
if(strstr(CWtext,pzx))
{
HWND hEnum=hwnd;
::GetWindowThreadProcessId(hEnum,&EnumPID);
HANDLE hProcess=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,EnumPID);
::CloseHandle(hProcess);
}
return true;
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课