最小化后如何在 Windows 中的单个应用程序上编程击键?

Posted

技术标签:

【中文标题】最小化后如何在 Windows 中的单个应用程序上编程击键?【英文标题】:How to program keystrokes on a single app in Windows after minimizing? 【发布时间】:2017-09-04 22:57:29 【问题描述】:

我可以使用 AutoHotKey 对某些自动化任务进行编程,但它要求我打开应用程序窗口。换句话说,我不能 Alt+Tab 离开应用程序,否则 AutoHotKey 脚本将不起作用。

有没有一种方法可以将某些击键和鼠标移动编程到 Windows 上的应用程序中,这样即使在我最小化(或 Alt+Tab 键)该应用程序后这些击键仍能继续工作?

根据我在这里找到的类似问题,创建机器人似乎是最好的方法,但机器人是否可以在最小化的程序上工作(在后台运行)?

【问题讨论】:

【参考方案1】:

您可以使用 ControlSendControlClick 向特定应用程序发送命令。

ControlSend

将模拟的击键发送到窗口或控件。

例子

ControlSend, Edit1, This is a line of text in the notepad window., Untitled
SetTitleMatchMode, 2
ControlSend, , abc, cmd.exe  ; Send directly to a command prompt window.

ControlClick

向控件发送鼠标按钮或鼠标滚轮事件。

例子

ControlClick, OK, Some Window Title  ; Clicks the OK button
ControlClick, x55 y77, WinTitle  ; Clicks at a set of coordinates. Note the lack of a comma between X and Y.

; The following method may improve reliability and reduce side effects:
SetControlDelay -1
ControlClick, Toolbar321, WinTitle,,,, NA x192 y10  ; Clicks in NA mode at coordinates that are relative to a named control. 

【讨论】:

以上是关于最小化后如何在 Windows 中的单个应用程序上编程击键?的主要内容,如果未能解决你的问题,请参考以下文章

windows下QT程序如何最小化到任务栏

windows只能运行一个应用程序,没有最小化

HLOOKUP 后获取最小值

如何启动 Outlook 处于最小化状态

windows phone 上退出应用程序后恢复音乐

使用单个 Windows 服务托管 4 个不同的 WCF 项目。如何?