2013-04-05 52 views
1

在Autohotkey中,如果在Foxit Reader處於活動狀態時如何使NumpadDot雙擊,否則發送正常的NumpadDot?Autohotkey - 如果條件不符合,發送默認行爲

我(打破)嘗試:

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

回答

1

嗯,我會做這種方式:

SetTitleMatchMode 2 ; allow partial titles 

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

哦,順便說一句,無限循環是因爲你的發送,{NumPadDot}啓動你自己的腳本。如果你想在這個熱鍵之前防止這個位置$ NumpadDot ::

+0

完美地工作。謝謝!由於性能方面的原因,我避免了這種方法,可能是錯誤的:按下的每個按鍵都必須評估Foxit是否處於活動狀態,而不是先評估哪個按鍵被按下。 – 2013-04-05 18:29:29

+0

我做了一個小小的修改,以澄清只有熱鍵受'#IfWinActive'影響。其他代碼仍然會運行,沒有任何效果。 – FakeRainBrigand 2013-04-06 13:49:17

0

你不必有else語句:

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

return 
+0

當我複製並粘貼到Autohotkey並重新加載腳本,然後轉到記事本並在數字鍵盤上按下句點時,不出現句點。我怎樣才能讓這個時期出現? – 2013-04-05 18:19:51

1

我推薦@ RobertIlbrink的答案,但這裏有另一種方法來做到這一點。

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

$防止AutoHotkey的從困惑局面發送擊鍵(通過發送命令)與由用戶進行的鍵擊。如果我們不這樣做,我們會得到一個無限循環。