Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何知道使用EnumChildWindows()搜索哪个类名?_C++_Winapi - Fatal编程技术网

C++ 如何知道使用EnumChildWindows()搜索哪个类名?

C++ 如何知道使用EnumChildWindows()搜索哪个类名?,c++,winapi,C++,Winapi,我正在父窗口中查找表单字段的类名 我在父窗口中找到:handle=FindWindowA(NULL,“riotclient”) 我通过父-子窗口枚举:EnumChildWindows(handle,&findChild,(LPARAM)&child) findChild()编写为: BOOL CALLBACK findChild(HWND child, LPARAM lParam) { char className[64]; ::GetClassNameA(child, cla

我正在父窗口中查找表单字段的类名

我在父窗口中找到:
handle=FindWindowA(NULL,“riotclient”)

我通过父-子窗口枚举:
EnumChildWindows(handle,&findChild,(LPARAM)&child)

findChild()
编写为:

BOOL CALLBACK findChild(HWND child, LPARAM lParam) {
    char className[64];
    ::GetClassNameA(child, className, sizeof(className));
    std::cout << className;
    std::cout << "\n";      
    if (!strcmp(className, "Riot Client")) {
        *(HWND*)lParam = child;
        return FALSE;
    }
    return TRUE;
}
进一步对这些类名使用
FindWindowA()
,不会提供任何有用的信息

我注意到这里回调中的类名是专门针对子窗口的。这就是我想要找到的。目前我正在搜索父windows类名


更新


由此看来,与这些字段通信是不可能的。

这是一个“Nw.JS”类型的应用程序。基本上,UI是一个网页/HTML。其中没有Win32子窗口。也许你可以在里面注入硒元素。你可以用一个像Spy++这样的程序来查看那个特定窗口的窗口层次结构来证明我错了。@Andy我刚刚试过Spy++。它没有返回所有的孩子:相反,它建议使用inspector。我已经做了,并且发现了一些更好的结果。谢谢。我非常确定应用程序使用的是NW.JS框架,或者是Electron框架。无论如何,您可以将硒注入其中并以这种方式实现自动化。你必须用谷歌搜索它。如果你需要自动化用户界面,请使用。用于验证目标应用程序是否实现了所需的接口。如果没有,您将不得不调查应用程序是否提供自定义自动化协议。如果这两个都不可用,你就无能为力了。
RCLIENT
CefBrowserWindow
Chrome_WidgetWin_0
Chrome_RenderWidgetHostHWND