2017-11-23 20 views
0

私はちょうどAutoHotKeyで始まったばかりです。リセットする前に、1秒間に10回クリックしてから3秒間右マウスボタンを押し続けるスクリプトを作成しようとしています。私はalt + cでアクティブにしようと思っていて、マウスの左ボタンを押すと中断します。私はそれAutoHotKeyクリックスクリプト

LButton:: 
BreakLoop = 1 
return 
!c:: 
Loop 
{ 
if (BreakLoop = 1) 
break 
; 

Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Send, {RButton Down} 
Sleep, 3000 
Send, {RButton Up} 
Return 
} 

を思い付いた

スクリプトは、しかし、これは動作しません。これを修正する方法はありますか、またはこのスクリプトのために完全に間違った方法をとったことがありますか?

答えて

1

あなたはできませんループ戻るコマンドを持っていた底に、コードを間違えました。 (この戻りコマンドは、Cのために必要とされるであろう::とは、それがループコマンドをoutsiteしなければならない!の)

コードは次のようにする必要があります

~LButton:: 
BreakLoop = 1 
return 

!c:: 
Loop 
{ 
if (BreakLoop = 1) 
break 

Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Click 
Sleep, 1000 
Send, {RButton Down} 
Sleep, 3000 
Send, {RButton Up} 
} 
Return 

ヒント:Lbuttonを変更した場合::〜Lbuttonへ:: then Default LeftButtonもアクティブです。ループ内でループをネストすることにより

私は実際に大幅にそれを圧縮(およびより高速ループを破る)する方法を見つけることができました
+0

うん、それを固定ループの外でリターンをシフト! マウスボタンを使用していたときにブレークキーを変更しました。 –

0

!s:: 
BreakLoop = 1 
return 


!c:: 
BreakLoop = 0 

Loop 
{ 

Loop 10 
{ 
if (BreakLoop = 1) 
break 
; 
Click 
Sleep, 900 
} 

Send, {RButton Down} 
Sleep, 3000 
Send, {RButton Up} 
} 
if (BreakLoop = 1) 
Break 
; 

Return 
0

よりよい方法はのSetTimerを使用することで、これはあなたが破損することができますあなたの一連の行動のどの時点でもループの外に出ることができます。

試してみてください。

!c::setTimer, doAction, 1000 
!s::SetTimer, doAction, Off 

doAction: 
    i += (i <= 14 ? 1 : -13) 
    if (i == 14) 
     send, {RButton Up} 
    else if (i == 11) 
     Send, {RButton Down} 
    else if (i <= 10) 
     click 
return