2016-04-21 65 views
0

如何設置autohotkey以便重複鍵盤上的密鑰?下面是它的幼稚版本:在autohotkey中重複numlock密鑰

{ 
keys = 23456790.-+/* ; all the keys you want to accelerate 
Loop Parse, keys 
    Hotkey *%A_LoopField%, KEY 
Return 

KEY: 
    StringRight key, A_ThisHotKey, 1 
    t := 0.11   ; initial delay [seconds] 
    Loop { 
     Send {BLIND}{RAW}%key% 
     KeyWait %key%, T%t% 
     If ErrorLevel = 0 
     Break 
     t := t > 0.12 ? t*0.79 : 0.115 ; delay *= 0.80, while delay > 0.02 
    } 
return 
} 

我曾希望,只是更換「2」和「{} NUMPAD2」(以及類似的其他插槽)會做的伎倆,但事實並非如此。

+0

你應該改變你的方法。不要從字符串中提取數字,請按照原樣處理熱鍵。所以不要發送2而不是Numpad2,但只發送Numpad2。我不認爲KeyWait是必要的。只需要一個計時器來測量時間,如果時間到了,就發送一個密鑰。 – 2501

回答

1

這似乎是工作

$Numpad0:: 
$Numpad1:: 
$Numpad2:: 
$Numpad3:: 
$Numpad4:: 
$Numpad5:: 
$Numpad6:: 
$Numpad7:: 
$Numpad8:: 
$Numpad9:: 
$NumpadDot:: 
$NumpadSub:: 
$NumpadMult:: 
$NumpadDiv:: 
$NumpadDel:: 
$7:: 
$8:: 
$9:: 
$0:: 
StringReplace, ThisKeyLabel, A_Thishotkey, $ 
While GetKeyState(ThisKeyLabel,"P") 
{ 
    Random, r, 10, 30 
    sleep r 
    Send % "{" . ThisKeyLabel "}" 
} 
return 
+0

大多數互聯網帖子都缺少的關鍵是{和}的預先和追加。 – ragerdl

+1

您也可以使用A_TickCount而不是睡眠來衡量是否已經到了發送密鑰的時間。 – 2501

+0

而不是十幾個熱鍵,並且放置在'loop'中的'input'可能適合你 – Blauhirn