UWSCで変数をキー入力する方法とは?

このQ&Aのポイント
  • UWSCで変数に応じたキー入力をする方法について説明します。
  • 変数Aが1から84までの値を取る場合、SELECT文を使用して二桁目と一桁目で分けて入力することができます。
  • 変数が文字列を値として取る場合、その文字列をそのままキー入力させることができます。
回答を見る
  • ベストアンサー

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 ↑エラー 二桁目と一桁目で分けて入力すればよさそうですが、 どう処理すればいいのかわかりません。 また、仮に変数が文字列を値として取る場合も、 その文字列をそのままキー入力させるにはどうしたらよいでしょうか?

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

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

そういう目的のために、SendStr関数が使えます。そうすれば、いちいちSelect文で切り分ける必要はなくなります。 変数Aが文字列の場合: SendStr(GETID(GET_ACTIVE_WIN),A) 変数Aが数値の場合: SendStr(GetId(GET_ACTIVE_WIN),Copy("0"+A,Length(A),2)) とすると、変数Aの内容がアクティブウィンドウに送信されます。ただし一つ注意があって、入力先のエディットボックスなりメモが選択されていないと空振りに終わるので、あらかじめBtn関数で入力したい場所をクリックさせておく必要があります。

pugera542
質問者

お礼

回答ありがとうございます。 とりあえずIF文でうまくいきました。 お教えいただいた方法も試してみたいと思います。

関連するQ&A

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

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

  • 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行に抑えること、あるいはこれよりも楽に記入する手段はないでしょうか? どうかよろしくお願いします。

  • (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の仮想キーについて

    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で使うファイルを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に詳しい方簡単なテキスト入力方法を教えてください

    文字列を打ち込むときに KBD(VK_O,CLICK,40) KBD(VK_S,CLICK,40) KBD(VK_A,CLICK,40) とかキーボードマクロで書き込む方法しか分かりません 文章・文字列とかを入力する場合はどのようにしたら出来るのでしょうか? またランダムに入力したいと思う機会多くあるのですが // ランダムな文字列を生成する // 提供は うっちー さん です。 // 2007/03/20 新規作成 Ret = CreatePassword(8) msgbox(Ret) // パスワードに使用する文字を作成 Function CreatePassword(PasswordLength) dim Password dim chrset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" for i = 1 to PasswordLength Password = Password + copy(chrset, random(length(chrset)) + 1,1) next Result = password Fend などのようなメッセージボックスじゃなくて直接メモ帳などの「カーソルが表示されている部分な」テキストボックスに書き込むにはどうしたらいいのでしょうか?

  • UWSCで ENTERキーを押した時の挙動について

    UWSCで ENTERキーを押した時の挙動を再現したいのですが上手くいきません。 アバター sekiguchi_kou_dayoさん2017/6/2302:40:58 UWSCで ENTERキーを押した時の挙動を再現したいのですが上手くいきません。 ●試したコード IESetData(IE,True,"","innerText=編集",2) sleep(0.5) IESetData(IE,"2017/08/28","TAG=input",9) sleep(0.5) KBD(VK_RETURN) 実際、手でエンターキーを押すのとテキストボックスの日付が更新されるのですが、KBD(VK_RETURN)だと更新がかかりません。 考えられる可能性がございましたらアドバイスを頂けると助かります。宜しくお願い致します。

  • エクセルにて為替の自動売買プログラムを作成しており、キー記録マクロ「U

    エクセルにて為替の自動売買プログラムを作成しており、キー記録マクロ「UWSC」を使用して 指し値を貼りたいと思っております。 エクセルの値を持つことは出来たのですが、それをUWSCでクリックで指定した所に値を代入する事が できません。 下記プログラムの一番下の行です。 だれか教えて欲しいです。 ctrlwin(getid("FX Trading Station 2.0"),max) ACW(GETID("FX Trading Station 2.0"),-7,-7,1036,750,0) BTN(RIGHT,CLICK,172,208,300) ACW(GETID("FX Trading Station 2.0"),-7,-7,1036,750,0) BTN(LEFT,CLICK,230,221,78) ACW(GETID("新規指値の作成","#32770"),328,193,371,342,0) BTN(LEFT,CLICK,504,341,62) KBD(VK_BACK,CLICK,40) KBD(VK_BACK,CLICK,40) KBD(VK_BACK,CLICK,40) KBD(VK_BACK,CLICK,40) KBD(VK_BACK,CLICK,40) KBD(VK_DELETE,CLICK,40) Excel = GETACTIVEOLEOBJ("Excel.Application"); val1 = Excel.ActiveSheet.range("A1").value;

  • 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

    UWSCでの質問ですが、一般的なプログラミングでの質問っぽいので こちらで質問させていただきます。 例えば下記のような変数があったとします。 a = "test" b = "TEST" これらのa、bの変数内の文字列を結合して"testTEST"といった文字列にしたい場合 どのようにしたらよいのでしょうか。 よろしくお願いします。

専門家に質問してみよう