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; }