2012-03-01 20 views
1

我有一個autohotkey腳本,當按下CAPSLOCK時,會處理(左,右,上,右)(h,j,k,l)按鈕。如果按下太快,AHK腳本有時會錯過按鍵組合

但是,當我按下按鈕和按鈕(h,j,k,l)太快時,它只輸出字母。

有沒有辦法減少這種「滯後」? 這可以很容易地用另一種語言如c或C++來完成嗎?

我也不確定這段代碼是做什麼的,因爲它的一部分是從網上剪下來的。

#Persistent 
#SingleInstance, Force 
SetKeyDelay, -1 
CoordMode, Tooltip, Screen 
modal = 
context = 
num = 

SetTimer, vim, 100 

; Disable CAPSLOCK 
$CAPSLOCK:: 
return 

$+CAPSLOCK:: 
return 


vim: 
While GetKeyState("CAPSLOCK", "P") 
{ 
    vimize() 
    if modal != 
     Tooltip, %context%: %num%, 60, 10 
    else if num != 
     Tooltip, %num%, 60, 10 
    else 
     Tooltip 
    SetTimer, vim, off 
} 
modal = 
num = 
unvimize() 
SetTimer, vim, on 
Tooltip 
Return 

vimize() 
{ 
    Gui 11:Show, Minimize, vimOn ; Hide, 
} 

unvimize() 
{ 
    Gui 11:Destroy 
} 

#IFWinExist vimOn 

h::Send, {Left} 
j::Send, {Down} 
k::Send, {Up} 
l::Send, {Right} 

; ===== SubRoutines ===== 

GetLineSelection: 
    Send, {Home}{Shift Down}{End}{DOWN %num%}{Home}{Shift Up} 
Return 

Run_Mode: 
    Send, ^%modal% 
    ;Send {Left}{RIGHT} 
    num = 
    modal = 
return 

回答

0

我找不到提高性能的方法,但我確實重寫了整個腳本,現在它完美無缺地工作。

這次我用suspend代替。

Suspend On 

;===Navigate 
h::Left 
j::Down 
k::Up 
l::Right 

;===Other functions and full code here

CapsLock::Suspend Off 
CapsLock Up::Suspend On 

這使得它更快,更流暢。

相關問題