• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UWSCのスクリプトで行き詰っています。。)

UWSCスクリプトでF12を無限にループさせる方法

このQ&Aのポイント
  • UWSCのスクリプトで特定のアプリケーションでF12を無限にループさせる方法がわかりません。
  • 座標の指定などは必要ないため、自分で試してみましたがうまく動作しません。
  • どのようにスクリプトを組めばよいか分からず、教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#194317
noname#194317
回答No.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)
回答No.1

私もあまり詳しくはないですが 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