C 查找具有自定义类的窗口控件

C 查找具有自定义类的窗口控件,c,winapi,dialog,automation,window,C,Winapi,Dialog,Automation,Window,假设有一个应用程序使用带有自定义类名的CreateWindow/CreateWindowEx,不同于按钮编辑等。我希望能够找到此控件,以便使用发送消息向它们发送消息。我试图使用FindWindowEx,但没有找到它们。(它只是返回,根本找不到任何控件)。如何找到这种类型的自定义控件?我曾想过使用GetDlgItem进行暴力攻击,但我觉得效果不太好。因此,我想这里唯一可能的方法是在目标进程中插入dll,钩住CreateWindow/CreateWindowEx,找到那些控件,以便我以后可以将它们写

假设有一个应用程序使用带有自定义类名的
CreateWindow
/
CreateWindowEx
,不同于
按钮
编辑
等。我希望能够找到此控件,以便使用
发送消息
向它们发送消息。我试图使用
FindWindowEx
,但没有找到它们。(它只是返回,根本找不到任何控件)。如何找到这种类型的自定义控件?我曾想过使用
GetDlgItem
进行暴力攻击,但我觉得效果不太好。因此,我想这里唯一可能的方法是在目标进程中插入dll,钩住
CreateWindow
/
CreateWindowEx
,找到那些控件,以便我以后可以将它们写下来,并与
GetDlgItem
一起使用?有没有更简单的解决办法?我已经使用win sdk(
Inspector
)中的工具尝试了MSAA和UI自动化。我想自动化的窗口基本上是firefox弹出模式对话框,带有
MozillaDialogClass
。下面是此窗口的屏幕截图,其中运行了
检查器

编辑:


所以基本上问题是:MSAA/UI自动化组件无法在我上面显示的对话框中找到控件。我尝试了这两种方法,也尝试了spy++它也没有在tihs对话框中找到按钮、文本框和复选框。这就是为什么我尝试使用普通的winapi
findwindowe
+
FindWindowEx
查找它们。但同样的,没有成功

你看到了吗?@ryker你好。问题是,我在spy++/winspy或任何其他ui检查应用程序中都找不到这些按钮标识符。问题是我需要找到它们,但我无法使用msa/AUTIMATION从我的应用程序中找到它们/findwindowex@ryyker这就是为什么我要考虑dll注入,并挂钩
CreateWindow
/
CreateWindowEx
。另外,是否有其他方法可以本机创建控件,或者必须始终使用这两个winapi函数创建任何gui控件?如果Spy++看不到子窗口,则没有子窗口。如果UI自动化也找不到项,那么应用程序根本不希望自动化。同样,如果Spy++看不到子窗口,则没有子窗口。无需费尽心思安装挂钩。您有一个实现无窗口控件的GUI。除非应用程序实现了使UI自动化工作所需的接口,否则对此您绝对无能为力。既然这两种方法都不成功,你不妨把时间更有效地花在其他事情上。