jjzjj

findwindowex

全部标签

c++ - 第一次调用 FindWindowEx/EnumChildWindows 后是否缓存了控件树?

我注意到,如果您针对属于不在前台(即最小化)窗口的hWnd调用FindWindowEx或EnumChildWindows,则它们不会报告任何children。另一方面,如果我首先对正在查询的窗口调用SetForegroundWindow,然后调用FindWindowEx或EnumChildWindows,它们会报告所有子项.即使我感兴趣的窗口不在前台,下一次调用也会报告所有子项。它几乎是在第一次调用后进行某种缓存? 最佳答案 这是您自己的应用程序中的一个窗口,还是您正在调查第三方应用程序的功能?我猜应用程序只会在它第一次进入前台时创

c# - 开发应用程序的Windows 'class name'是什么?

Win32API函数的参数之一FindWindowEx是窗口的ClassName。例如,MicrosoftWord的ClassName是“OpusApp”。如果我开发了自己的应用程序,应用程序窗口的ClassName应该是什么?我可以将此ClassName设置为任何我想要的吗? 最佳答案 您在创建窗口时没有注意到必须调用RegisterClassEx(或普通RegisterClass)?;)每个窗口都有一个类。当您创建自己的类时,您指定它的类。*编辑:考虑到您的模糊标记,我不太确定您是如何编写您的应用程序的。如果您使用的是.NET,

c++ - FindWindow( ... ) 不是 'finding' 创建的消息窗口

在我的代码中,我有一个消息类,我想从另一个进程中“查找”它。classMyWindow:publicCWnd{public:MyWindow::MyWindow(LPCTSTRpszClassName){autowcn=::AfxRegisterWndClass(NULL);autocreated=this->CreateEx(0,wcn,pszClassName,0,0,0,0,0,HWND_MESSAGE,0);}};然后在我的主应用中的某个地方。...autopszClassName=_T("MyWindowClass");autownd=newMyWindow(pszClass

c# - 来自 user32.dll 的 FindWindowEx 使用 dllimport 返回零句柄和 127 错误代码

我需要以编程方式处理另一个Windows应用程序,搜索谷歌我找到了一个示例,它使用DLLImport属性处理Windows计算器并将user32.dll函数导入C#中的托管函数。应用程序正在运行,我正在获取主窗口的句柄,即计算器本身,但之后的代码无法正常工作。FindWindowEx方法不返回计算器子项的句柄,例如按钮和文本框。我尝试在DLLImport上使用SetLastError=True并发现我收到错误代码127,即“未找到过程”。这是我从中获得示例应用程序的链接:http://www.codeproject.com/script/Articles/ArticleVersion.

c++ - EnumChildWindows 还是 FindWindowEx?

我可以选择使用APIEnumChildWindows或FindWindowEx中的任何一个。有什么建议哪个api性能更好?FindWindowEx是否在内部使用EnumChildWindows来获取特定窗口的句柄? 最佳答案 这在很大程度上取决于您的场景。FindWindowEx函数用于搜索具有特定类别的窗口以及窗口中可选的特定文本片段。EnumChildWindows函数只是用来枚举子窗口。我认为性能应该是您最后关心的问题。首先是选择正确的API。如果您确实要搜索特定类的窗口,则使用FindWindowEx,否则使用E​​numC

c# - 我能否始终确定通过 FindWindowEx 找到的控件的层次顺序?

我在做什么?我正在自动化第3方应用程序。登录窗口看起来像这样注意:表单中嵌入了背景图像,USERNAME和PASSWORD实际上都是图像的一部分。以防万一有人想知道为什么WindowDetective中的以下类treeview可能没有»Label控件。我现在在哪里?我在获取组件句柄方面没有任何问题。我的意思是,我通常可以使用FindWindowEx函数访问每个窗口/控件。我可以为按钮实现一个GetWindowTextLength和/或GetWindowText函数来区分我处理的是哪个按钮。虽然此方法适用于Button(.Caption),但在使用Edit控件时不会对我有好处.Edit控