• ベストアンサー

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,秒) のような表記でしか使えないのでしょうか?

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

  • ベストアンサー
回答No.1

if GETKEYSTATE(VK_F1) and GETKEYSTATE(VK_CTRL) then で良いハズ。

kotomitoyuu
質問者

お礼

早速、回答してくださりありがとうございます。 &ではなく and をつければ良かったのですね。 ありがどう(人>д<*ペコ感謝

関連するQ&A

  • 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 非アクティブウィンドウへのキー入力

    こんにちは。「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で使うファイルをexcelで作りたい

    まずあまりの初心者ゆえに失礼がありましたらすみません。 UWSCというフリーソフトのスクリプトの編集をexcelでして そのあとにメモ帳などに移して使うつもりなのですが たとえば下記のようなものがあったとして BTN(LEFT,CLICK,223,72,) SLEEP(0.5) KBD(VK_a,DOWN,) KBD(VK_b,DOWN,) KBD(VK_1,CLICK,) KBD(VK_TAB,CLICK,) KBD(VK_RETURN,CLICK,) という文章を BTN(LEFT,CLICK,223,72,) SLEEP(0.5) KBD(VK_a,DOWN,) KBD(VK_b,DOWN,) KBD(VK_2,CLICK,) KBD(VK_TAB,CLICK,) KBD(VK_RETURN,CLICK,) になって BTN(LEFT,CLICK,223,72,) SLEEP(0.5) KBD(VK_a,DOWN,) KBD(VK_b,DOWN,) KBD(VK_3,CLICK,) KBD(VK_TAB,CLICK,) KBD(VK_RETURN,CLICK,) をへて BTN(LEFT,CLICK,223,72,) SLEEP(0.5) KBD(VK_a,DOWN,) KBD(VK_b,DOWN,) KBD(VK_4,CLICK,) KBD(VK_TAB,CLICK,) KBD(VK_RETURN,CLICK,) となり BTN(LEFT,CLICK,223,72,) SLEEP(0.5) KBD(VK_a,DOWN,) KBD(VK_b,DOWN,) KBD(VK_5,CLICK,) KBD(VK_TAB,CLICK,) KBD(VK_RETURN,CLICK,) というかたちでKBD(VK_数字,CLICK,)という部分だけを1から500まで増やしていって あとの数値は同じものをずっと並べていきたいのですが普通にフィルハンドル?をつかってやると 私が編集したいKBD(VK_数字,CLICK,)の部分以外の数値までおそらく増えていってしまうんですよね。 KBD(VK_数字,CLICK,)の数字の数値だけを増やしていくことはできますでしょうか? なおどうやらソフトの性質として数字が10をこえると KBD(VK_10,CLICK,) ではなく KBD(VK_1,CLICK,) KBD(VK_0,CLICK,) や KBD(VK_1,0,CLICK,) と表現しなければいけなくなるようなのですが そういう数値の増やし方はできますでしょうか? 超初心者なので全く何もわからないのですがそんな人間でもできますでしょうか。

  • UWSCで変数をキー入力

    UWSCで変数に応じたキー入力をしたいのですが、 どうすればいいのでしょうか? たとえば 変数Aが 1 の場合は 01 とキー入力 変数Aが 25 の場合は 25 とキー入力 という感じで、変数Aは1~84までの値を取ります。 これをSELECT文で試してみたのですが、 1~5くらいまでならうまくいくのですが、 さすがに84まであるとエラーがでてしまいます。 SELECT A CASE 1 KBD(VK_0,CLICK,40) KBD(VK_1,CLICK,40) CASE 2 KBD(VK_0,CLICK,40) KBD(VK_2,CLICK,40) ・ ・ CASE 84 KBD(VK_8,CLICK,40) KBD(VK_4,CLICK,40) SELEND ↑エラー 二桁目と一桁目で分けて入力すればよさそうですが、 どう処理すればいいのかわかりません。 また、仮に変数が文字列を値として取る場合も、 その文字列をそのままキー入力させるにはどうしたらよいでしょうか?

  • (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で画像が消えた場合に動作せるやり方

    ある画像 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の簡単なキーマクロなのですが・・・

    マクロ全体を「While True」と「wend」で挟めば無限ループ無限ループの設定かと思います。 実際、このようなマクロが出来上がっており、使用しているのですが、この無限ループの中に指定回数ループを組み込むにはどの様にしたら良いのでしょうか? マクロ事態は簡単なキーマクロで、簡略化して示すと以下のような感じになります。 ~~~~~~~~~~~~~~ (1),While True (2),KBD(VK_F10,CLICK,5000)//5秒間隔でF10をクリック (3),KBD(VK_F1,CLICK,5000)//F1を1回 (4),KBD(VK_F11,CLICK,5000)//5秒間隔でF11をクリック (5),KBD(VK_F1,CLICK,5000)//F1を1回 (6),KBD(VK_F2CLICK,5000)//F2を1回 (7),wend ~~~~~~~~~~~~~~ 希望の指定回数ループというのは、 「(2)を10回実行」→「(3)を1回実行」→「(4)を10回実行」→「(5)を1回実行」 上記動作を「4回繰り返した後」→「(6)の実行」 コピペで指定回数貼り付ければ良いという案もあるかと思いますが、編集を伴い、その作業が少々煩雑です。 ご存知の方居りましたら、教えてください

  • 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")」 と表示され、動いてくれません。 いろいろ調べてはみたのですが、解決できなかったので どなたかわかりやすく説明などして下さるとありがたいです。

  • UWSCについて

    ゲームで自動化マクロを作りたいのですが調べてもたのですがうまくいかずよくわからないので教えてください。 やりたい事は ・文字を見つけたらある場所をクリックする ・見つからなかったときは更新ボタンを押し見つかるまで繰り返す この二つなのですが While true  // 繰り返し ここから if GETKEYSTATE(VK_ESC) then exit // Escapeキーでスクリプト停止 Search = "○○" // 検索文字 // ここから あった時 BTN(LEFT,CLICK,232,344,702) BTN(LEFT,DOWN,200,530,593) MMV(200,530,10) BTN(LEFT,UP,200,530,125) MMV(200,530,203) BTN(LEFT,DOWN,245,365,390) MMV(245,365,15) BTN(LEFT,UP,245,365,141) MMV(245,365,203) MMV(245,365,374) MMV(245,365,422) BTN(LEFT,DOWN,193,542,343) MMV(193,542,10) BTN(LEFT,UP,193,542,109) MMV(193,542,94) MMV(193,542,46) MMV(193,542,452) BTN(LEFT,CLICK,245,421,110) BTN(LEFT,CLICK,219,250,230) BTN(LEFT,DOWN,184,245,47) MMV(185,246,78) BTN(LEFT,UP,185,246,63) // ここまで あった時 // ここから なかった時 BTN(LEFT,CLICK,74,60,1217) Search = "○○" // 検索文字 終了 wend //繰り返し ここまで これをすると検索もせずクリックする部分を繰り返してしまいます。 どこを直せばいいのでしょうか? よろしくお願いします。

  • UWSCでキー入力を変数に代入する方法

    IFB GETKEYSTATE(VK_CTRL) PRINT "Ctrlキーが入力されたよ" ENDIF という風に決め打ちで何が押されたか確認する方法は分かったのですが、 SELECT KeyInput CASE VK_CTRL PRINT "Ctrlキーが入力されたよ" CASE VK_ESC PRINT "Escキーが入力されたよ" SELEND というように変数にキー入力を代入してから比較する方法が分かりません。 キー入力を変数に代入する方法はあるのでしょうか?