VC查找游戏窗口句柄

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;
}
发表评论0条 】
网友评论(共?条评论)..
VC查找游戏窗口句柄