- ベストアンサー
UWSCスクリプトでF12を無限にループさせる方法
- UWSCのスクリプトで特定のアプリケーションでF12を無限にループさせる方法がわかりません。
- 座標の指定などは必要ないため、自分で試してみましたがうまく動作しません。
- どのようにスクリプトを組めばよいか分からず、教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
このスクリプトには「(2)のAlt+Pを押す」の処理が入ってませんよ。それに(5)の停止処理はその書き方だと停止することは非常にまれです。なぜならGETKEYSTATEは、スクリプトがそこを通った時にしか状態をチェックしないためです。なので、とりあえずこんな感じに直す必要があるでしょう。質問の(4)ですが、そのまま実装するとF12を押した後にまたすぐ(1)でF12を押すことになり、無駄だと思ったので入れていません。 winid=GETID("使いたいアプリケーション") While TRUE ACW(winid) //(1) Sckey(winid,VK_F12) //(2) Sckey(winid,VK_ALT,P) //(3) Print "休憩中" For i=1 To 700 //(5)0.1秒単位で数えるので70*10回ループする If GetKeyState(VK_ESC) Then Exit Sleep(0.1) Next Print "休憩終わり" Wend ACWをWhileループの中に入れた理由は、万一違うソフトにフォーカスが移ると目的のソフトにキー入力が届かない心配があり、そうなるのを避けるためです。 UWSCの時間指定はトラップで、Sleepは秒単位なのにそれ以外はミリ秒単位です。なのでKBD(VK_F12,DOWN,77)だと、77秒じゃなくて77ミリ秒(0.077秒)となります。
その他の回答 (1)
- ki-aaa
- ベストアンサー率49% (105/213)
私もあまり詳しくはないですが while TRUE //if GETKEYSTATE(VK_ESC) then exitexit //exitexit・・・UWSCを終わる if GETKEYSTATE(VK_ESC) then break //break・・・ループを抜ける KBD(VK_F12,DOWN,300) SLEEP(0.1) KBD(VK_F12,UP,300) //sleep(72+random(15)) 秒数 = (1+random(15)) for i = 1 to 秒数 step 1 SLEEP(1) ifb GETKEYSTATE(VK_ESC) then KBD(VK_F12,DOWN,300) //exitexit break endif next KBD(VK_F12,DOWN,300) Print "休憩中" wend