Autohotkey 自动热键-不同程序处于活动状态时的不同命令
我试图编写一个脚本,当单击“SHIFT+ALT+I”时,它会在MicrosoftWord处于活动状态时发送一个特定命令,如果MicrosoftPowerPoint处于活动状态(两个程序同时运行),则会发送另一个命令 代码应该类似于:Autohotkey 自动热键-不同程序处于活动状态时的不同命令,autohotkey,Autohotkey,我试图编写一个脚本,当单击“SHIFT+ALT+I”时,它会在MicrosoftWord处于活动状态时发送一个特定命令,如果MicrosoftPowerPoint处于活动状态(两个程序同时运行),则会发送另一个命令 代码应该类似于: "if Microsoft Word is open" +!i:: MouseMove, 300,50,0 MouseClick, left "if Microsoft Powerpoint is open" +!i:: MouseMove, 600,100,0
"if Microsoft Word is open"
+!i::
MouseMove, 300,50,0
MouseClick, left
"if Microsoft Powerpoint is open"
+!i::
MouseMove, 600,100,0
MouseClick, left
有什么(简单的)方法吗?是的,这很简单 首先: 您建议的结构是可能的,但不使用标准热键触发器。您可以运行一个计时器,检查窗口是否打开,然后检测按键,然后采取行动。或者你确实可以使用@user已经链接到的内容。 我认为有一个热键触发一个窗口检查,然后采取相应的行动更整洁和有效。 然后,代码将如下所示:
+!i::
IfWinActive, Microsoft Word
{
MouseMove, 300,50,0
MouseClick, left
}
IfWinActive, Microsoft Powerpoint
{
MouseMove, 600,100,0
MouseClick, left
}
Return
请注意,此函数检查窗口标题,因此在本例中,窗口标题中有“Microsoft Word”字样。请在此阅读此函数:这是定义特定于应用程序的热键的正确方法 以活动窗口为条件定义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
看见