UWSC非アクティブでの動作について

このQ&Aのポイント
  • UWSCを使用してメモ帳の最小化や非アクティブな状態でもキー入力を送信する方法について質問です。
  • 現在、UWSCを実行すると「式がおかしい or 型があっていない」というエラーメッセージが表示されます。
  • 調査した結果、問題が解決しなかったので、詳しい説明を教えていただきたいです。
回答を見る
  • ベストアンサー

UWSC 非アクティブでの動作

while true if GETKEYSTATE(VK_ESC) then exit // Escapeキーでスクリプト停止 ID = GETID("TEST.txt - メモ帳","Notepad") ifb (ID < 0) MSGBOX("ウィンドウが見つかりません") exitexit endif id = GETCTLHND("TEST.txt - メモ帳","Notepad"),"Edit","1") MOUSEORG(id,2) KBD(VK_S,DOWN,200) wend TEST.txtという名前のメモ帳に、最小化していたり、非アクティブな状態でも UWSCによるキー入力を送信したいのですが、上手くいきません・・。 実行させると 「式がおかしい or  型があっていない」 「13行目: id = GETCTLHND("TEST.txt - メモ帳","Notepad"),"Edit","1")」 と表示され、動いてくれません。 いろいろ調べてはみたのですが、解決できなかったので どなたかわかりやすく説明などして下さるとありがたいです。

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

  • ベストアンサー
  • kunuso
  • ベストアンサー率25% (223/882)
回答No.1

非アクティブ動作、たまたま自分も気になったのでプログラマの友人に聞いてみた。 UWSC使ったことない人が、物の5,6分で書いたものなので、その辺はご了承のほどを。 これは代理回答ということで。 while true if GETKEYSTATE(VK_ESC) then exit // ESCで終了 id = GETID("TEST.TXT - メモ帳", "Notepad") ifb (ID < 0) MSGBOX("ウィンドウが見つかりません") exitexit endif hwnd = GETCTLHND(id, "Edit") MOUSEORG(hwnd, 2) KBD(VK_S,DOWN,200) wend これで動いたということで回答を貰ったので載せておく。 友人曰く、そもそも文法が間違っているとのこと。

関連するQ&A

  • UWSC 非アクティブウィンドウへのキー入力

    こんにちは。「MapleStory」というゲームで非アクティブ状態でもキー情報が入力されるようにしたいのですが・・・ネットでいろいろ調べたところここまでたどり着きました。 while true if GETKEYSTATE(VK_ESC) then exit //ESCで終了 id = GETID("MapleStory","MapleStoryClass") ifb (ID < 0) MSGBOX("ウィンドウが見つかりません") exitexit //見つからなければ終了 endif hwnd = GETCTLHND(id, "MapleStoryClass") MOUSEORG(hwnd, 2) KBD(VK_A,DOWN,200) wend ↑のように書けば非アクティブでもAが入力されると思ったのですが、アクティブ状態でしか入力してくれません。 どのようにしたら良いのでしょうか?どなたかご教授お願いします。ちなみに調べたところクラスはMapleStoryClassの1つだけのようでした。

  • UWSCで画像が消えた場合に動作せるやり方

    ある画像 aaa.bmp だったとします この画像があるときは なにもせず なくなった場合(画像が消えるまで繰り返す)に ENTER ENTER と 押すようなスプリクト を 書いて頂けないでしょうか? While true if GETKEYSTATE(VK_ESC) then exit If ChkImg("aaa.bmp")=TRUE  ←画像があるとき? Ifb and ChkImg("aaa.bmp")=FALSE ←画像が消えた時? kbd(VK_ENTER) kbd(VK_ENTER) endif wend なんとか こんな感じまで 出来ました よろしくお願いいたします

  • UWSCについて

    UWSCでマクロを使い画像判断検索?をしたいのですが While true  // 繰り返し ここから if GETKEYSTATE(VK_ESC) then exit // Escapeキーでスクリプト停止 Ifb chkimg("aiueo.bmp") = true then // 画像判定 // ここから あった時 sleep(1) // 待ち時間 // ここまで あった時 // ここから なかった時 else  sleep(1) // 待ち時間 // ここから なかった時 BTN(LEFT,CLICK,74,60,1217) Endif // 画像判定 終了 wend //繰り返し ここまで これで画像ファイルの名前を uwsc_aiueo.uws にしてくださいとあったのでそのままファイル名に使ってるのですがうまくいってません。 初心者ですが教えていただけないでしょうか?

  • UWSCのスクリプトで行き詰っています。。

    作りたい動作は特定のアプリケーションで「(1)F12を押す⇒(2)Alt+Pを押す⇒(3)70秒待機⇒(4)F12を押す((1)~(4)を無限にループ)(5)ESCキーでマクロを停止」です。特に座標の指定などありませんので一通り自分で挑戦してみましたが素人構成なのでうまく動作しませんでした。あれこれとしてみた結果、結局どういった風に組んでよいか分からず途方にくれています・・・。詳しい方がいらっしゃいましたらご教授ください。よろしくお願いします。 以下組んでみたスクリプト ACW(GETID("使いたいアプリケーション")) while TRUE if GETKEYSTATE(VK_ESC) then exit KBD(VK_F12,DOWN,77) KBD(VK_F12,UP,77) SLEEP(1) sleep(72+random(15)) KBD(VK_F12,DOWN,77) Print "休憩中" wend

  • UWSCによる色識別がWin7だとできない

    UWSCでPEEKCOLORを使い、指定した座標の色を識別して、キーを押すといった動作をさせたいのですが、 XPのPCだと正常に動作するのに、Win7のPCになると何も動作が起きず上手くいきません。 同じスクリプト文を使用しているにも関わらず、Win7だと動作起きないのは、色を識別する方法が異なるのでしょうか? 動作文は以下の通りです。 While True ifb PEEKCOLOR(198,68) = $845539 then   Kbd(VK_F4,DOWN,30)   Kbd(VK_F4,UP,30) else   Endif ifb PEEKCOLOR(198,56) = $845539 then   Kbd(VK_F5,DOWN,30)   Kbd(VK_F5,UP,30) else Endif WEND 色を調べる方法として、WinXP・7共に次のものを使用しました。 OLD_X = 0 OLD_Y = 0 OLD_COLOR = 0 while TRUE   WIN_ID = GetID(GET_ACTIVE_WIN)   MOUSEORG(WIN_ID)   BASE_X = STATUS(WIN_ID, ST_X)   BASE_Y = STATUS(WIN_ID, ST_Y)   ifb GETKEYSTATE(VK_LBUTTON) then     NEW_X = G_MOUSE_X; NEW_Y = G_MOUSE_Y     OFF_X = NEW_X - BASE_X; OFF_Y = NEW_Y - BASE_Y     c=PeekColor(OFF_X, OFF_Y)     ifb NEW_X <> OLD_X OR NEW_Y <> OLD_Y OR c <> OLD_COLOR then       PRINT "X="+(OFF_X)+"/Y="+(OFF_Y)+"/赤="+(c and $FF)+"/緑="+((c and $FF00)/$100)+"/青="+((c and $FF0000)/$10000)+"/BGR値=$"+FORMAT( c,6,-1 )     endif     OLD_X = NEW_X; OLD_Y = NEW_Y; OLD_COLOR = c   endif   sleep(1) wend 色々調べてみましたが、やはりWin7でのみ動作しなくて困っています。 原因が分かる方、助言お願いします。

  • UWSCの仮想キーについて

    if GETKEYSTATE(VK_F1) then 例えば GETKEYSTATEで CtrlキーとF1キーを同時に押されている時にthenとしたい場合 どう表現したら良いのでしょうか? if GETKEYSTATE(VK_F1&VK_CTRL) thenとなるのでしょうか? それとも KBD(VK_CTRL,DOWN,秒) KBD(VK_F1,CLICK,秒) KBD(VK_CTRL,UP,秒) のような表記でしか使えないのでしょうか?

  • UWSCのキーボード入力ですが、下記の通りでは、"natm"等になって

    UWSCのキーボード入力ですが、下記の通りでは、"natm"等になってしまい、うまく入力されません。 Ifb ChkImg("bmp/test/natume.bmp") KBD(VK_N,CLICK,40) KBD(VK_A,CLICK,40) KBD(VK_T,CLICK,40) KBD(VK_U,CLICK,40) KBD(VK_M,CLICK,40) KBD(VK_E,CLICK,40) KBD(VK_ENTER,CLICK,40) Endif また、これでは記述する際に大変ですので、キーボード入力の箇所を1行に抑えること、あるいはこれよりも楽に記入する手段はないでしょうか? どうかよろしくお願いします。

  • MoEでUWSC操作をバックグラウンド実行出来ない

    MoE(Master of Epic)というオンラインゲームをUWSCでマクロ操作出来ているのですが、 マクロ操作実行中にMoEウィンドウがアクティブでないと動作しないので、 その間ネットで検索などしたいのですがそれが出来ずに困っています。 ※例えばマクロ動作中にメモ帳を開くとマクロで送っている入力キーが全てメモ帳に出力されます。 所謂、バックグラウンド実行などと呼べばよいのでしょうか? 以前は出来ていたはずなのですが・・・ 環境 OS:Win7-64PRO UWSC4.9 マクロ例 // --- ACW(GETID("Master of Epic -The ResonanceAge Universe-","Master of Epic -The ResonanceAge Universe-"),0,0,1286,828,0) id = GetID("Master of Epic -The ResonanceAge Universe-") id = GetCtlHnd(id,"Master of Epic -The ResonanceAge Universe-") MouseOrg(id,2) sleep(1) KBD(VK_3,CLICK,1000) KBD(VK_4,CLICK,1000) KBD(VK_5,CLICK,1000) KBD(VK_X,CLICK,1000) KBD(VK_Y,CLICK,1000) KBD(VK_Z,CLICK,1000) // --- 上記マクロ例では全くの無反応で終了してしまいます。 MoE自体にマクロ対策のようなものが施されているのでしょうか?? UWSCサイトやQAをググった限りでは、 MouseOrg(id,2) の引数2=2を指定すればバックグラウンド実行出来るはずなのですが、 MouseOrg(id,0) の引数2=0とすれば(mouseorg省略時の標準と同意)バックグラウンドではなく標準の動作はしています。 なのでマクロ動作中はボーッと眺めているしかありません・・・ 実際にMoEをUWSCでマクロ実行出来ている方、 その他アプリをバックグラウンド実行できている方、 ご教示頂ければ幸いです。 --- 以下、参考サイト MoE公式サイト : http://moepic.com/top UWSCサイトでのQA : http://www.uwsc.info/faq.html#n17 mouseorg 関数の仕様 : http://uwsc.dohow.jp/blog/mouseorg.html 類似質問1 : http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14119110964 類似質問2 : http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10119730290

  • (UWSC) エクセルのセルをコピーするには?

    UWSCで、エクセルにあるセルの中身をコピーしたいと 考えています。 getstrを使って、 a = GETSTR(GETID("Microsoft Excel","XLMAIN"),p)  (pは適当な数字) としましたがうまくいかないみたいです。 例えば、i行j列のセルにある文字をコピーするには、 どのようにすればいいのでしょうか? KBD(VK_CTRL,DOWN,32) KBD(VK_C,CLICK,31) KBD(VK_CTRL,UP,40) でもかまいません。

  • UWSCについて

    UWSCの設定について質問させて頂きます。 私がしたいのは、画面上に画像が現れた瞬間からカウントをスタートし、一定時間で左クリックを一回押すというものです。 現在は下記のように試しており、大体は思い通りなのですが、カウントスタート前にUWSCの停止ボタンのポップアップが点滅状態のため画像が現れた瞬間に反応できてないような感じです。 コンマ数秒でのことですがどうしても正確にしたいのです。 プログラムについての知識もなく行き詰まってしまいました。 どうか宜しくお願い致します。 while true if GETKEYSTATE(VK_ESC)then exit ifb CHKIMG("画像.bmp",0) BTN(LEFT,CLIK,10000) ENDIF WEND

専門家に質問してみよう