首页
社区
课程
招聘
[求助]已知标题,怎么求得窗口的句柄?求完整的代码
发表于: 2008-10-11 02:48 4264

[求助]已知标题,怎么求得窗口的句柄?求完整的代码

2008-10-11 02:48
4264
已知标题,怎么求得窗口的句柄?求完整的代码
该窗口下面有很多子窗口,如何枚举各个子窗口及其句柄?
谢谢先

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
2
没有完整代码,只有思路

invoke FindWindow,NULL,ctxt("窗口标题")。
返回一个句柄,就是当前窗口的句柄。

得到该窗口句柄后,用FindWindowEx就可以得到各个子窗口及其句柄。
2008-10-11 05:49
0
雪    币: 2559
活跃值: (176)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
HWND GetHWndByCaption(char* szCaption)
{
        char        szWndCaption[MAX_PATH];
        HWND        hWnd=::GetWindow(::GetDesktopWindow(),GW_CHILD);
        int                len=(int)strlen(szCaption);
        int                i=0;

        while(::IsWindow(hWnd))
        {
                GetWindowText(hWnd,szWndCaption,MAX_PATH);
                if((int)strlen(szWndCaption)>=len)
                {
                        i=0;
                        while(i<len)
                        {
                                if(szCaption[i]!=szWndCaption[i])
                                {
                                        break;
                                }
                                i++;
                        }
                        if(i==len)
                        {
                                if(::IsIconic(hWnd))
                                {
                                        ::ShowWindow(hWnd,SW_RESTORE);
                                }
                                break;
                        }
                }
                hWnd=::GetWindow(hWnd,GW_HWNDNEXT);
        }

        return hWnd;
}
2008-10-13 11:56
0
雪    币: 221
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=davidfoxhu;520667]HWND GetHWndByCaption(char* szCaption)
{
        char        szWndCaption[MAX_PATH];
        HWND        hWnd=::GetWindow(::GetDesktopWindow(),GW_CHILD);
        int                len=(int)strle...[/QUOTE]
恩 这个不错,遍历标题基本上目前的保护基本都能过
2008-10-13 16:02
0
游客
登录 | 注册 方可回帖
返回
//