毎秒

2011-01-22 15 views
0

は私がPCに特定のゲームポートのための非常に退屈な「スプリント」アクションを戦うためにAutoHotkeyをで次のように書いたキー操作の繰り返し:毎秒

#SingleInstance,Force 
#NoEnv 
CoordMode,Mouse,Screen 
DetectHiddenWindows,On 
StringTrimRight,applicationname,A_ScriptName,4 
OnExit,EXIT 
Gosub,TRAYMENU 

; Set the first run to turn on the loops 
breakera = 0 
loopa = 1 
breakerw = 0 
loopw = 1 

Shift & LAlt:: 
IfWinExist,Bully 
    { 
     If loopa = 0 
      { 
       loopa := !loopa 
       breakera := !breakera 
      } 
      else 
      { 
       loopa := !loopa 
       breakera := !breakera 
       Loop 
        { 
         Send {LAlt} 
         Sleep, 1000 
         if breakera = 1 
          { 
           break 
          } 
        } 
      } 
    } 
    else 
     { 
      Gosub,BULLYERROR 
     } 
Return 

Shift & W:: 
IfWinExist,Bully 
    { 
     If loopw = 0 
      { 
       loopw := !loopw 
       breakerw := !breakerw 
      } 
      else 
      { 
       loopw := !loopw 
       breakerw := !breakerw 
       Loop 
        { 
         Send {w} 
         Sleep, 1000 
         if breakerw = 1 
          { 
           break 
          } 
        } 
      } 
    } 
    else 
     { 
      Gosub,BULLYERROR 
     } 
Return 

BULLYERROR: 
Gui,97:Destroy 
Gui,97:Margin,20,20 
Gui,97:Font 
Gui,97:Add,Text,y+10 yp+10,Bully is not running! 
Gui,97:Show,,Error 
Return 

私は、このコードは正確に効率的ではない実現したがしかし、それはうまくいくように見えますが、それはありません(欠落しているサブスティール、ちょっとしたスニペットについて心配しないでください)。

私の意図は、あなたがShift + Keyを押すと、あなたは再びShift + Keyを押すまで、それはKey秒ごとに繰り返されるようにそれを作ることです。

アイデア?ありがとう!

答えて

0

このようなものを使用してください。

Shift & LAlt:: 
    If AltRepeating = true 
    { 
    SetTimer, RepeatAlt, Off 
    AltRepeating = false 
    } 
    Else 
    { 
    Send, {lAlt} 
    SetTimer, RepeatAlt, 1000 
    AltRepeating = true 
    } 


RepeatAlt: 
    Send, {LAlt} 
Return