2012-03-01 4 views
1

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 

これは、はるかに高速かつスムーズに。

関連する問題