Autohotkey - 如果不满足条件则发送默认行为

mel*_*low 5 autohotkey

在Autohotkey中,如果Foxit Reader处于活动状态,如何使NumpadDot双击,否则发送普通的NumpadDot?

我的(失败的)尝试:

NumpadDot::
  SetTitleMatchMode 2 ; allow partial titles
  IfWinActive, Foxit
      Click 2
  else
      Send {NumpadDot} ; THIS CREATES AN ENDLESS LOOP!
Return
Run Code Online (Sandbox Code Playgroud)

Bri*_*and 5

我推荐@RobertIlbrink 的答案,但这是另一种方法。

$NumpadDot::
IfWinActive, Foxit
    Click 2
else
    SendInput {NumpadDot}
return
Run Code Online (Sandbox Code Playgroud)

$可以防止 AutoHotkey 将发送的击键(通过发送命令)与用户的击键混淆。如果我们不这样做,我们就会陷入无限循环。


Rob*_*ink 3

好吧,我会这样做:

SetTitleMatchMode 2 ; allow partial titles

#IfWinActive, Foxit ; Any hotkeys defined between #IfWInActive ONLY works in Foxit
  NumpadDot::Click 2
#IfWinActive
Run Code Online (Sandbox Code Playgroud)

哦,顺便说一句,无限循环是因为您的 Send, {NumPadDot} 启动了您自己的脚本。如果你想防止在热键前放置一个 $,如下所示 $NumpadDot::