问题标签 [findwindow]

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 投票
1 回答
31016 浏览

vb.net - FindWindow FindWindowEx

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

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

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

德尔卡

资源

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

0 投票
1 回答
173 浏览

winapi - 如何知道进程是否从服务运行

我制作了一个 GUI 应用程序,它必须在我的 DELL 服务器上运行才能 24 小时发送查询。

如果应用程序被随机用户停止,或者不管它是什么,我创建了一个服务程序来检测它何时停止运行,并再次执行它。

问题是,在服务中,FindWindow() 不能正常工作(总是返回 nullptr),因为微软从 XP 开始改变了它的操作系统服务策略。而且我的服务程序无法找到该程序是否在进程列表中。

我在互联网上找到了一些解决方案,即“允许服务与服务面板上的桌面交互”,但由于它是很久以前的,所以不太适合当前的操作系统版本。

我应该改用 IPC 吗?或任何其他解决方法?

我相信必须有一种方法可以做到这一点,因为使用 CreateProcessAsUser() 也可以从服务执行进程。

任何建议将不胜感激。

提前致谢。

0 投票
2 回答
99 浏览

nsis - 为什么卸载要求关闭未打开的应用程序?

从资源管理器启动卸载时,它会弹出一条消息,要求用户关闭应用程序。

但是,应用程序没有运行。FindWindow看到了什么用户看不到的东西?

这在 Windows95 或使用 Win95 界面的系统上不会发生。

从开始菜单中的卸载图标卸载时不会发生此问题。

0 投票
1 回答
849 浏览

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

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

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

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

}

0 投票
1 回答
7319 浏览

c# - 以编程方式单击 MessageBox 按钮

正如标题所示,我正在尝试以编程方式模拟 MessageBox 中的按钮单击。我之前尝试通过标题找到它的句柄来关闭 MessageBox,WM_CLOSE然后SC_CLOSESendMessage(). 但是,由于存在是/否按钮,这不起作用(X 按钮变灰)。

现在我正在尝试单击“否”按钮,如下所示 - :

在 IRC 某人的建议下走了这么远,我发现之前进行了一些编辑,我得到了按钮句柄(只有“&是”按钮),但不是全部。然后他建议了这种方法,但controlList 没有填充,因此它永远不会进入foreach. 我该怎么做才能解决这个问题?

0 投票
2 回答
169 浏览

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

我遇到了以下问题:

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

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

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

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

有谁能帮忙吗?

0 投票
2 回答
8634 浏览

vba - 使用 FindWindow 在 VBA 中隐藏 WScriptExec 窗口

是的。复杂。
前提:
我正在运行一个需要通过 FTP 检索信息的 Access 数据库。它使用 WScriptExec 对象运行 ftp.exe 并读取 stdOut 以确定创建目录的日期和时间(名称是格式为“d.yymmdd.hhmmss”的日期和时间,所以我只是向ls d.*服务器发送一个)。该代码有效,除了我希望窗口不显示或至少隐藏得更快。
目标:
通过找到它的句柄来查找和操作 WScriptExec 窗口(我天生就有 ProcessID,这显然毫无价值)。不,我不想/不能在此应用程序中使用 .Run 并输出到文件。我以后可能需要像这样操作一个窗口,并且想知道如何在没有“使用其他方法”之类的解决方法的情况下进行操作。
我试过的:
-FindWindow("Console,MSDOS,pretty much any made up class I could think of since I don't know class types", "C:\WINDOWS\system32\ftp.exe, C:\WINDOWS\system32\cmd.exe, ftp.exe, cmd.exe, pretty much every window title you can imagine")所有这些都在另一个参数中使用 vbNullString。我尝试过的一切都返回 0。
-FindWindowLike从这个链接。我尝试过的一切都返回 0。我对其进行了修改以弹出它找到的每个窗口,但没有看到听起来正确的窗口标题。所以我假设标题不是 WScriptExec 命令提示符窗口中显示的标题。
- GetForegroundWindow。返回我的 Access DB 窗口,即使在AppActivate objExec.ProcessID.

仅供参考,我如何调用 WScriptExec 对象:(
Set objExec = objShell.Exec("cmd /c ftp -n ftp.server.location")我也尝试过cmd /c;两者都有效)

0 投票
1 回答
1738 浏览

c# - 设备管理器交互发送键

我正在尝试编写一个简单的控制台程序,该程序将启动设备管理器并通过使用击键来浏览它。到目前为止,我无法让他们击键以在设备管理器中注册。

该程序可以正常启动设备管理器,但设备管理器中似乎没有击键。我知道设备管理器的树部分使用 Spy++ 称为 SysTreeView32。

有什么建议么?

到目前为止,这是我的代码。

EDIT1:您必须以管理员身份运行该程序才能正常工作。

最终代码:

0 投票
0 回答
5532 浏览

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

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

这是我的代码:

调试输出为:

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

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

在此处输入图像描述

任何帮助都会很棒!

0 投票
2 回答
1890 浏览

vba - 多次调用 BringWindowToTop 不起作用

我无法理解以下代码有什么问题 -

它应该在两个窗口之间切换并让它们保持焦点直到 1 秒,但实际发生的是它只是将 Firefox 放在顶部,然后没有切换。

谢谢