廿文廿武 发表于 2017-6-13 18:25:27

如何读取没有标题栏和窗口名的窗口句柄。



这样的窗口怎么读取句柄?用enumwindow可以枚举出来(在结果里一个一个的对着找的),但是怎么判断是不是自己要找的窗口的句柄?

廿文廿武 发表于 2017-6-16 21:25:36

up{:10_266:}

廿文廿武 发表于 2017-6-19 17:03:19

upup{:10_266:}

俞晨曦 发表于 2017-6-20 19:48:40

子窗口控件也是有标题的 . 这个的ClassName应该是 "Button" .

尝试用一下
HWND FindWindowEx(
HWND hwndParent,      // handle to parent window
HWND hwndChildAfter,// handle to a child window
LPCTSTR lpszClass,    // pointer to class name
LPCTSTR lpszWindow    // pointer to window name
);

廿文廿武 发表于 2017-6-20 20:00:15

俞晨曦 发表于 2017-6-20 19:48
子窗口控件也是有标题的 . 这个的ClassName应该是 "Button" .

尝试用一下

我是要找窗口句柄,而不是BUTTON控件的句柄。

俞晨曦 发表于 2017-6-20 20:33:49

GetParent
The GetParent function retrieves a handle to the specified child window's parent window.

HWND GetParent(
HWND hWnd   // handle to child window
);

俞晨曦 发表于 2017-6-20 20:35:26

通过Button的句柄调用GetParent获取主窗口的句柄 .
不一定能成功

廿文廿武 发表于 2017-6-21 13:48:22

#include <stdio.h>
#include <Windows.h>

BOOL CALLBACK EnumWindowsProc(
        _In_ HWND   hwnd,
        _In_ LPARAM lParam
)
{
        HWND hwnd1;
        hwnd1 = FindWindowExA(hwnd, 0, "Button", "Close");       
        if (hwnd1)
        {
                printf("当前枚举句柄:%x\t控件句柄:%x\t父窗口句柄:%x\n", hwnd, hwnd1, GetParent(hwnd1));
        }
        return 1;       
}

int main()
{
        EnumWindows(EnumWindowsProc, NULL);
        return 0;
}
页: [1]
查看完整版本: 如何读取没有标题栏和窗口名的窗口句柄。