问题标签 [findwindowex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
24269 浏览

api - 如何使用 Win32 API 找到子窗口的子窗口(3 级深)的子 HWND?

假设我有一个用于其中一个进程的 Window 层次结构:

如何找到 的 HWND Child-Child Window

我尝试FindWindow在类上使用 Win32 API 函数,XYZ_Renderer但该FindWindow函数找不到子窗口。

然后我尝试使用FindWindowto find Main Window,它成功了,但之后使用FindWindowEx只能找到Child WindowasChild-Child Window不是Main Window.

我想我可以更深入一层并在找到 FindWindowEx 时调用Child Window它。

但在我这样做之前,我想也许有一种简单的方法可以找到Child-Child Window

0 投票
2 回答
237 浏览

.net - 在特定应用程序中查找 MessageBox?

我们已经实施了一个解决方案,给我们的内部用户一个他们需要重新部署我们的应用程序的唠叨消息。我们正在使用文件系统观察程序来监视网络并寻找运行良好的特定文件中的更改。大多数功能都在一个基表单类中实现,我们的应用程序的大多数表单都继承自该基表单类。在重新部署应用程序之前,将每五分钟显示一个新消息框。它让他们感到厌烦,以至于它可以有效地让他们重新部署,但让他们在需要时完成他们所做的任何事情。

如果用户离开他们的办公桌,当他们返回时可能会有 20 多个消息框,就会遇到问题。所以我们要做的是弄清楚他们是否已经关闭了消息框。如果他们没有解雇,就没有理由再展示一个。

他们不仅可以运行多个实现此功能的不同应用程序,还可以运行多个相同的应用程序,只是连接到不同的环境。

我用 FindWindow 成功找到了消息框,但我不知道它属于哪个应用程序的哪个特定实例,所以我不能假设它属于当前实例。我希望 FindWindowEx 通过将消息框所有者的句柄传递给 api 调用来工作,但我没有成功。它总是返回零。

我将展示的代码在 vb.net 中,但我精通 c# 和 vb.net,所以解决方案的形式无关紧要。

无论如何,这里是抛出通知的代码:

我能够找到窗口:

这就是我尝试使用 FindWindowEX 查找窗口的方式:

200398 是上面 mdimain 的句柄。

0 投票
1 回答
31016 浏览

vb.net - FindWindow FindWindowEx

我编写了一个程序,该程序是在另一个程序中找到一个框并将焦点设置在它上面。完成此操作后,它将发送密钥并保存到此框。

我正在使用 Findwindow 和 FindwindowEx 来定位该框,但我遇到了一些问题。 在此处输入图像描述 如果您注意到窗口一直到第一个 TPanel 都是相同的。现在之后有 3Tpanel 类。在 3Tpanel 类之后有多个 TttgEdit 类。

我如何教授我想要选择的课程?到目前为止,这是我的代码。

德尔卡

资源

左侧的数字,hWnd,每次关闭和打开屏幕时都会改变,所以我不能将它们用作静态数字。任何帮助都是极好的。

0 投票
1 回答
1546 浏览

c++ - 为什么 FindWindowEx 找不到我所有的按钮?

我应该写一个自动安装程序。只是一个您启动的程序,它应该自行完成安装向导,无需用户触摸任何东西。

我目前正在开发的程序称为 Cygwin。而我要做的就是一遍又一遍地点击“下一步”按钮,直到安装完成。我知道我可以使用 VBS,我知道我可以使用 C#,这会让我的生活变得更轻松。但是我有一个示例说明它如何适用于另一个程序,并且我正在尝试将它用于 C++ 中的 Cygwin。

这是我用来查找按钮的功能,在下一步中应该单击它。我在 hwndParent 中有程序窗口,并且工作正常。hwndChildAfter 和 lpszClass 是“NULL”,而 lpszWindow 是按钮的名称。这适用于按钮“Abbrechen”(德语为取消)。但是,当我将该名称更改为“Weiter”(Next 的德语)时,它就不再起作用了。他就是找不到。我认为这与“Weiter”的写作方式有关。它不仅是唯一的词。整个表达式是 "Weiter >" 当然我把整个表达式放在 lpszWindow 中用 "" 括起来,就像我对 "Abbrechen" 所做的那样。但就像我说的,他没有找到。我已经尝试了编写它的所有变体,但它不起作用。

有谁知道“>”或“”(空格)是否有问题,因此他无法阅读。如果是这样,有什么办法可以解决吗?或者是否可以获得按钮的 ID 或类似的东西,可以用来告诉程序在哪里设置鼠标点击。

正如我所说,我知道 C++ 并不是真正适合这项任务的最佳语言,最后我想我会改用其他语言。但我真的很想知道为什么它适用于“Abbrechen”以及为什么它不适用于“Weiter >”。

因此,如果有人有解决方案,我将不胜感激。谢谢!

0 投票
1 回答
849 浏览

c# - 单击按钮后 SendMessage 卡住了

奇怪的问题,我无法解决。搜索主窗口,然后搜索标题为“开始”的按钮控件。在它找到开始并发送按钮点击后,它只是坐在那里,永远不会过去,所以我从来没有在控制台中看到“离开循环”。

该按钮确实被按下并弹出一个消息框,我将在这部分代码之外继续回答。奇怪的是,一旦我手动回答该框,它就会中断 NativeMethods.SendMessage(start, BM_CLICK, IntPtr.Zero, ""); 我看到“离开循环”,然后一切都很开心,继续前进。

我在这里想念什么?希望我解释得足够好。

}

0 投票
1 回答
8347 浏览

c# - 子对话框窗口上的 FindWindowEx

我正在尝试获取子对话框窗口的句柄。我试过使用 FindWindowEx,但没有用。相反,FindWindow 确实有效。

我用 Visual Studio 的选项窗口做了一个实验,代码如下:

据我了解, FindWindowEx 应该可以工作,它是一个子窗口。

我正在运行 windows xp,并且还尝试使用 FindWindowEx(vsHandle, IntPtr.Zero, "#32770", null)。没用。似乎获得它的唯一方法是使用 FindWindow 这还不够好,因为可以打开具有相同对话框的两个父实例。

这是声明:

提前致谢。

0 投票
2 回答
934 浏览

c# - 在 VB.NET 中调用不带参数的委托

在将下面的代码翻译成 VB.NET 时,我遇到了一个障碍。

我的问题是:在 C# 中,我的委托被调用时没有参数作为参数本身。如何在 VB.NET 中做到这一点?所有的在线和离线翻译器都无法按原样翻译所有代码。请参阅下面我所在的位置:

翻译失败的部分是最重要的事情......

这里:

(没有足够的参数来调用“MyEnumThreadWindowsProc”函数)

和这里:

(指针)


供参考,完整来源是

这是 Telerik 在线服务翻译的代码:

0 投票
2 回答
169 浏览

c# - 如何在应用程序中查找和关闭窗口

我遇到了以下问题:

我开发了一个 C# 应用程序,其中一部分使用 webbrowser 控件。

在某些情况下,网络浏览器控件会打开一个标题为“文件下载 - 安全警告”的窗口。

我的问题是:我怎样才能找到这个窗口并关闭它?

我偶然发现了 API 的 FINDOW 和 FINDWINDOWEX 函数,但我不明白。

有谁能帮忙吗?

0 投票
0 回答
5532 浏览

vb.net - 应用程序按钮上的 SendMessage BM_CLICK

嘿,我对这个 BM_CLICK 问题的影响有点困惑。

这是我的代码:

调试输出为:

现在我不知道为什么它没有找到也没有点击确定按钮。

该按钮的 Spy++ 如下所示:

在此处输入图像描述

任何帮助都会很棒!

0 投票
0 回答
504 浏览

c# - 如何使用 FindWindowEx 查找图像按钮

我正在尝试使用 Windows API SendMessage 来查找并单击按钮。它目前在 Windows 窗体具有带文本的标准按钮时有效,但在按钮为不带文本的图像形式时无效。

如您所见,我试图找到“打开”按钮,但找不到,因为该按钮是用图像而不是文本设计的。我该如何解决或解决这个问题..?