2012-05-14 29 views
1

我想這一定是可能的,但我找不到它的文檔在任何地方的AutoHotkey評估和演示/正則表達式聽在AutoHotkey

我想要做的事,如:

[a-z0-9]:: 
SoundPlay, %A_WinDir%\Media\[\1].wav 
SoundPlay *-1 

即監聽所有鍵a到z和0-9找到相關的wav文件(a.wav等)並播放它。如果找不到播放默認聲音。

這是出路AHK的聯賽?我應該堅持在Python中做這個嗎?! 提前感謝

回答

0

我不知道的方式來使用正則表達式來指定熱鍵,但是這是我如何我的劇本之一了這事

@:: 
a:: 
b:: 
c:: 
; (all other alpha keys...) 
    ; Pass key on, if not in subscription list 
    If(in_edit_screen()) 
    { 
     ; Handle caps lock 
     If(GetKeyState("Capslock", "T")) 
     { 
      ; Send uppercase letter 
      StringUpper key, A_ThisHotkey 
      Send %key% 
     } 
     Else 
     { 
      Send %A_ThisHotkey% 
     } 
     Return 
    } 
    ; etc. 
    Return 

這是這是某個窗口聚焦時調用的例程的一部分,但所討論的窗口有幾種不同的模式;在其中一種模式下(由in_edit_screen標誌指示),我只想傳遞密鑰,而在另一種模式下,我希望密鑰做一些特殊的事情。 A_ThisHotkey是告訴例程用戶實際按下哪個按鍵/按鍵組合的變量。

+0

已編輯。我忘了注意,我單獨列出每封信。 – echristopherson

3

可以使用Hotkey Command所有可能的熱鍵分配給標籤。

第一循環在這裏使用技巧與價值觀轉化爲自己的ASCII codes,做數學,並將其轉換回字符。邏輯工作原理如下:'後面的第5個字符是什麼?'?」 - 向其回覆'f'

#Persistent 

Loop, 26 
    Hotkey, % Chr(Asc("a") + A_Index - 1), MyLabel 

Loop, 10 
    Hotkey, % A_Index - 1, MyLabel 
return 

MyLabel: 
MsgBox You pressed %A_ThisHotkey% 
return 
0

爲什麼不啓動,你使用的腳本:

輸入,CI_KeyVar,我L1

,然後讀出其中一個鍵被按下(變量= CI_KeyVar),做你的事(支票如果ASCII碼落在0和Z,因爲該輸入將作用於任何輸入)之間重新啓動腳本,等待下一次按鍵....

的出路將是觸發如esc鍵,腳本停止。