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

时间:2013-04-05 18:06:42

标签: autohotkey

在Autohotkey中,如果福昕阅读器处于活动状态,如何双击NumpadDot,否则发送正常的NumpadDot?

我的(破碎)尝试:

NumpadDot::
  SetTitleMatchMode 2 ; allow partial titles
  IfWinActive, Foxit
      Click 2
  else
      Send {NumpadDot} ; THIS CREATES AN ENDLESS LOOP!
Return

4 个答案:

答案 0 :(得分:1)

好吧,我会这样做:

SetTitleMatchMode 2 ; allow partial titles

#IfWinActive, Foxit ; Any hotkeys defined between #IfWInActive ONLY works in Foxit
  NumpadDot::Click 2
#IfWinActive

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

答案 1 :(得分:1)

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

$NumpadDot::
IfWinActive, Foxit
    Click 2
else
    SendInput {NumpadDot}
return

$阻止AutoHotkey将发送的击键(通过发送命令)与用户发出的按键混淆。如果我们不这样做,我们会得到一个无限循环。

答案 2 :(得分:0)

您不必拥有else语句:

 NumpadDot::
     SetTitleMatchMode 2 ; allow partial titles
     IfWinActive, Foxit
 Click 2

return 

答案 3 :(得分:0)

我已经通过“ SendPlay”解决了这个问题,在此示例中,我有2个键盘,因此我使用keyboard1的{tab}进行Windows的{RAlt} {TAb}操作,而我使用主键盘的{tab}进行操作普通的东西

Tab::
  getKeyboardID()               ; AHKHID based routine
  if(kbID = keyboard1){
    send, {Ralt Down}{Tab}{RAlt Up}
  } Else {
   SendPlay {Tab}               ; here the solution
  }
Return