2011-03-25 23:35:49|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:C/C++, 游戏, 操作系统|来源:唯设编程网
使用FindWindow函数可以取得指定窗口的句柄HWND,通过HWND可以枚举出我们需要查找的窗口,本文通过实际的源码,说明了VC编程中枚举窗口句柄的基本流程和函数。
#include
#include
#include
/*要查找的游戏窗口标题,可以通过SPY++ 查找到*/
std::string winCaption = "QQ2008";
/*查找到的游戏窗口句柄*/
HWND windowhWnd = 0;
/*列举所有窗口*/
bool CALLBACK enumWindowProc(HWND hWnd,LPARAM lParam)
{
char buf[256];
if(::GetWindowText(hWnd,buf,255))
{
std::string caption = buf;
if(static_cast(caption.find(winCaption)) >= 0)
{
//查找到一个口句柄。
windowhWnd = hWnd;
return false;
}
}
//没有找到口句柄返回继续查找
return true;
}
int main()
{
HWND hWnd = 0;
/*查找游戏窗口,来获得游戏的窗口句柄*/
if(hWnd = ::FindWindow(NULL,winCaption.c_str()))
{
std::cout<<"查找到窗口句柄:"<<
}else{
std::cout<<"查找不到窗口句柄"<
}
/*并举窗口,来获得游戏的窗口句柄*/
::EnumWindows((WNDENUMPROC)enumWindowProc,0);
if(windowhWnd)
{
std::cout<<"查找到窗口句柄:"<<
}else{
std::cout<<"查找不到窗口句柄"<
}
return 0;
}