【问题标题】:Autohotkey - Different commands when different programs are activeAutohotkey - 不同程序处于活动状态时的不同命令
【发布时间】:2017-03-30 01:06:15
【问题描述】:

我正在尝试编写一个脚本,当单击“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

有没有(简单的)方法可以做到这一点?

【问题讨论】:

标签: autohotkey


【解决方案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

【讨论】:

    【解决方案2】:

    是的,这很简单。

    首先: 您建议的结构是可能的,但不能使用标准热键触发器。您可以运行一个计时器,它检查窗口是否打开,然后检测按键并采取行动。或者您确实可以使用 @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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多