Autohotkey - 不同程序处于活动状态时的不同命令

时间:2017-03-29 08:09:49

标签: autohotkey

我正在尝试编写一个脚本,点击" SHIFT + ALT + I"它在Microsft Word处于活动状态时发送一个特定命令,如果Microsoft PowerPoint处于活动状态,则发送另一个命令(两个程序同时运行)。

代码应该是这样的:

"if Microsoft Word is open"
+!i::
MouseMove, 300,50,0
MouseClick, left

"if Microsoft Powerpoint is open"
+!i::
MouseMove, 600,100,0
MouseClick, left

有没有(简单)方法呢?

2 个答案:

答案 0 :(得分:1)

这是定义特定于应用程序的热键的正确方法

以活动窗口为条件定义F1宏:

SetTitleMatchMode 2     ; All #If statements match anywhere in title

#IfWinActive Microsoft Word
  F1:: MsgBox F1 pressed in Word
#IfWinActive Notepad
  F1:: MsgBox F1 pressed in Notepad
#IfWinActive
  F1:: MsgBox F1 pressed elsewhere

答案 1 :(得分:0)

是的,这很简单。

首先: 您建议的结构是可能的,但不是标准的热键触发器。你可以运行一个计时器,检查一个窗口是否打开,然后检测到按键然后采取行动。或者您确实可以使用@user已链接到的内容。 我认为让一个热键触发窗口检查然后采取相应的行动会更加整洁和有效。

然后代码如下:

+!i::
IfWinActive, Microsoft Word
{
MouseMove, 300,50,0
MouseClick, left
}

IfWinActive, Microsoft Powerpoint
{
MouseMove, 600,100,0
MouseClick, left
}

Return

请注意,此函数会检查窗口标题,因此在此示例中,在窗口标题中字面上是“Microsoft Word”。请在此处阅读此功能:https://autohotkey.com/docs/commands/WinActive.htm