Autohotkey 自动热键-不满足条件时发送默认行为
在自动热键中,如果Foxit Reader处于活动状态,如何使NumpadDot双击,否则发送正常的NumpadDot 我的(失败的)尝试:Autohotkey 自动热键-不满足条件时发送默认行为,autohotkey,Autohotkey,在自动热键中,如果Foxit Reader处于活动状态,如何使NumpadDot双击,否则发送正常的NumpadDot 我的(失败的)尝试: 您不必有else语句: NumpadDot:: SetTitleMatchMode 2 ; allow partial titles IfWinActive, Foxit Click 2 return 好吧,我会这样做: SetTitleMatchMode 2 ; allow partial titles #IfWinAct
您不必有else语句:
NumpadDot::
SetTitleMatchMode 2 ; allow partial titles
IfWinActive, Foxit
Click 2
return
好吧,我会这样做:
SetTitleMatchMode 2 ; allow partial titles
#IfWinActive, Foxit ; Any hotkeys defined between #IfWInActive ONLY works in Foxit
NumpadDot::Click 2
#IfWinActive
哦,顺便说一句,无休止的循环是因为你的Send,{NumPadDot}启动了你自己的脚本。如果您想防止在热键前面放置$NumpadDot::我推荐@RobertIlbrink的答案,但这里有另一种方法
$NumpadDot::
IfWinActive, Foxit
Click 2
else
SendInput {NumpadDot}
return
$
防止AutoHotkey将发送的击键(通过发送命令)与用户的按键混淆。如果我们不这样做,我们会得到一个无限循环 我通过“SendPlay”解决了这个问题,在这个例子中,我有两个键盘,所以我使用键盘1中的{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
当我复制并粘贴到自动热键并重新加载脚本,然后转到记事本并按数字键盘上的句号时,不会出现句号。如何使句号出现?效果很好。谢谢我避免了这种方法,可能是错误的,因为性能原因:每个按下的键都必须评估Foxit是否处于活动状态,而不是首先评估按下的键。我做了一个小编辑,以澄清只有热键受
#IfWinActive
的影响。其他代码仍将运行,没有任何效果。
Tab::
getKeyboardID() ; AHKHID based routine
if(kbID = keyboard1){
send, {Ralt Down}{Tab}{RAlt Up}
} Else {
SendPlay {Tab} ; here the solution
}
Return