• 締切済み

UWSCで指定箇所のみループ

UWSCで指定した箇所へ戻ってループさせたいのですが、やり方がわかりません。 上手く説明ができないのですが… 例えば… while True Z地点 //Aの画像があればクリックしてX地点へ ifb CHKIMG("画像A") x=G_IMG_X y=G_IMG_Y BTN(LEFT, CLICK, x, y, 300) endif X地点 //Bの画像があればクリック、無ければZ地点へ戻る ifb CHKIMG("画像B") x=G_IMG_X y=G_IMG_Y BTN(LEFT, CLICK, x, y, 300) endif wend という感じで…、状況によってプログラムの指定した行へ移動させたいのですが どうすれば良いのでしょうか? 上手く説明できなくてすみませんが、教えてください。 よろしくお願いします。

みんなの回答

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

制御構文入れるなら、こんな感じとか。 while True  Z地点  Repeat   //Aの画像があればクリックしてX地点へ   ifb CHKIMG("画像A")    x=G_IMG_X    y=G_IMG_Y    BTN(LEFT, CLICK, x, y, 300)   endif   X地点  //Bの画像があればクリック、無ければZ地点へ戻る  Until CHKIMG("画像B")  x=G_IMG_X  y=G_IMG_Y  BTN(LEFT, CLICK, x, y, 300) wend

NanaDogoo
質問者

補足

これは Until CHKIMG("画像B") で画像が見つからなければ Repeat に戻るということでしょうか?

関連するQ&A

  • UWSCの画像認識について

    質問させていただきます ifb CHKIMG("画像.bmp",) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) endif これを複数の画像でやりたいときは ifb CHKIMG("画像.bmp",) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) endif ifb CHKIMG("画像.bmp",) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) endif のようにしないとだめなのでしょうか? それとも ifb CHKIMG("画像.bmp",) CHKIMG("画像.bmp",) CHKIMG("画像.bmp",) CHKIMG("画像.bmp",) BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) endif こんな感じにまとめる事はできるのでしょうか? 例として教えてもらえると助かります。 よろしくお願いします

  • UWSCについて

    画像がAになったらその画像をクリックしてBに変わったらまたクリックするというのを作りたいのですがどうにもA画像の時にクリックが連打になってしまします どこが悪いのでしょうか? While True Ifb ChkImg("A.bmp",0) BTN(LEFT,CLICK,G_IMG_X+5,G_IMG_Y+5,80) ChkImg("B.bmp",0) BTN(LEFT,CLICK,G_IMG_X+5,G_IMG_Y+5,80) ENDIF WEND

  • UWSCのスクリプトについて

    画像Dを認識したら画面上に画像Bがあっても 処理Bを実行しない為にはどうしたら良いでしょうか。 -------- while True BTN(LEFT,click,150,10,110)   //処理A Sleep(2) ifb CHKIMG("A.bmp")    x=G_IMG_X            y=G_IMG_Y BTN(left,click,x,y,110) Sleep(1.5) endif Ifb ChkImg("B.bmp")       //処理B BTN(LEFT,click,1120,90,110) Sleep(1) KBD(VK_return,DOWN,30) endif ifb CHKIMG("C.bmp")      //処理C x=G_IMG_X            y=G_IMG_Y BTN(left,click,x,y,110) Sleep(1.5) wend --------

  • uwscについて

    画像認識で質問があります。 画像Aがあった場合画像Aをクリックするのは出来るのですが 画像Aがあった場合画像Bをクリックする場合どのようにすればいいのでしょうか? IFB (CHKIMG("A.bmp")=TRUE) THEN SLEEP(0.3) //B、C出現までの間を調整 IFB (CHKIMG("B.bmp")=TRUE) THEN BTN(LEFT, CLICK, G_IMG_X, G_IMG_y) ELSEIF (CHKIMG("C.bmp")=TRUE) THEN BTN(LEFT, CLICK, G_IMG_X, G_IMG_y) ENDIF しらべてこのとおりやってみたら 最初のIFBに対してENDIFがないと言われてうまくいきません ちょっと調べたのですが分からなかったので助けてください

  • UWSCのプログラミングついて教えてください。

    UWSCについてです。 私は、UWSCをまだ1週間ほどしか触っていない超初心者です。 下記のようなプログラミングを組みたいと思っているので、プログラミング初挑戦なので右も左も良く分かっていません。 UWSCのプログラミングに詳しい方助けてください。 私の組みたいプログラミングは ("A.BMP",0)を無制限ループしつつ、("B.BMP",0)は2時間おきにループしつつ、("C.BMP",0)を30分間に30回実行する 場合のプログラミングです。【3つ同時進行です。】 宜しくお願いします。 while True ifb CHKIMG("A.BMP",0) x=G_IMG_X // 画像の座標をxへ代入 y=G_IMG_Y // 画像の座標をyへ代入 BTN(LEFT, CLICK, x, y, 80) endif ifb CHKIMG("B.BMP",0) x=G_IMG_X // 画像の座標をxへ代入 y=G_IMG_Y // 画像の座標をyへ代入 BTN(LEFT, CLICK, x, y, 80) endif ifb CHKIMG("C.BMP",0) x=G_IMG_X // 画像の座標をxへ代入 y=G_IMG_Y // 画像の座標をyへ代入 BTN(LEFT, CLICK, x, y, 80) endif wend

  • uwscでマクロ作成

    1画像Aが見つかったらそこをクリック×1 2画像Bが出てくるので画像Bをクリック×2 3ある座標をクリック×1 4再度画像Bをクリック×7 まったくの初心者ですが このようなマクロを作りたく思い作ってみたのですがまったくできません。。 if GETKEYSTATE(VK_ESC) then exit ifb CHKIMG("画像A",0) BTN(LEFT, CLICK, x, y, 80) ENDIF ifb CHKIMG("画像B",0) BTN(LEFT, CLICK, x, y, 80) BTN(LEFT, CLICK, x, y, 80) BTN(LEFT,CLICK,176,399,100) BTN(LEFT, CLICK, x, y, 80) BTN(LEFT, CLICK, x, y, 80) BTN(LEFT, CLICK, x, y, 80) BTN(LEFT, CLICK, x, y, 80) BTN(LEFT, CLICK, x, y, 80) BTN(LEFT, CLICK, x, y, 80) BTN(LEFT, CLICK, x, y, 80) ENDIF このような感じです  画像はペイントで切り取ったものを使い、uwsファイルと同じ所に入れていますが違う所で引っかかるようです。

  • UWSCの画像認識について

    プログラム初心者ですがUWSCでプログラムを作っています 画像認識において認識するべき画像が複数種類あるときのパターンができなくて困っています ifb CHKIMG("青空") x=G_IMG_X // 画像の座標をxへ代入 y=G_IMG_Y // 画像の座標をyへ代入 BTN(LEFT,CLICK,x,y,100) SLEEP(0.5) else Endif のように、単独の画像を認識し、その画像をクリックさせることはできるのですが 「青空」もしくは「夕空」もしくは「夜空」が出た時にその画像をクリックする のような命令をかくことができません ifb CHKIMG("青空" or "夕空" or"夜空") のような形でかければいいのですが、もちろんこれでは動きませんでした どうすればこれを実行できるようになるのか教えてくださいm(__)m

  • UWSCで任意ボタンをおした時 複数条件分岐

    UWSCでのプログラムの書き方についての質問です。 ある任意のボタンをおした時に指定した画像があるか確かめてあれば 指定した画像をクリックさせたい場合の方法を教えていただきたいです。 EScボタンをを押すまで無限ループ。 条件が複数あるのでIFを使いたいとかんがえています 任意のボタンを押したことで、指定した画像と一致するものがあるか確かめ、 一致した場合、指定した画像をクリックする。 それを沢山作りたい。 追加していきたい。 いくつまでの条件分岐ができるのかわからないし、 どのコマンドを使えば良いのかもわからず1年近く四苦八苦していました。 一般的条件分岐だとIF関数ですが、 もっと楽な方法があれば お手数ではございますが 解説付きでご教授のほどよろしくお願いします。 --------------------- WHILE !GETKEYSTATE(VK_ESC) //ESCを押すまでループ   if GETKEYSTATE(VK_y) then //yが押されたら BTN(LEFT,CLICK,g_img_x,g_img_y) //画像1をクリック    elseif GETKEYSTATE(VK_u) then //uが押されたら chkimg("画像2.bmp")=true BTN(LEFT,CLICK,g_img_x,g_img_y) //画像2をクリック elseif GETKEYSTATE(VK_t) then //tが押されたら chkimg("画像3.bmp")=true BTN(LEFT,CLICK,g_img_x,g_img_y) //画像3をクリック elseif GETKEYSTATE(VK_a) then //aが押されたら chkimg("画像4.bmp")=true BTN(LEFT,CLICK,g_img_x,g_img_y) //画像4をクリック elseif GETKEYSTATE(VK_w) then //wが押されたら chkimg("画像5.bmp")=true BTN(LEFT,CLICK,g_img_x,g_img_y) //画像5をクリック endif wend --------------------- 上記が 自分で書いたプログラムなのですが、 間違いだらけと承知の上 恥を忍んで重ね重ねご教授のほど よろしくお願い申し上げます

  • UWSCのスクリプト作成について

    UWSC初心者です。 画像を判別して、見つけたらクリックするものを作りました。 while True   if GETKEYSTATE(VK_ESC) then exit   ifb CHKIMG("目標.bmp")          BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)  endif sleep(2)  wend 目的は動きのある目標を認識してクリックしたいのですが、作り方が分からないので、とりあえず目標を画像判定で少しでもクリックできればと作りました。 でもやはり画像判定の場合は目標.bmpと一致でなければならないので、たまにしかクリックしてくれません。 なので、目標をいろいろな角度から画像保存し、数で攻めたいと思います。 目標.bmp→クリック ↓なし 目標1.bmp→クリック ↓なし 目標2.bmp→クリック というものを作りたいのですが、混乱してきて分からないので教えてください。

  • USWC初心者です。画像で終了させたいのですが

    USWCをさわり初めたばかりの初心者です。 3ヵ所をクリック+キー押しするだけで、基本ループし、指定画像が出たら終了するようにしたいのですが、終了が上手くできません。延々とループしてしまいます・・・・。 いろいろと検索して、調べながらやっているのですが、1日やってても解決しない状態です。 USWCがおわかりにになる方がいらっしゃいましたら、ご教授いただけますと助かります(>_<) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ //tabキーが押されるとマクロ終了。 While !GetKeyState(vk_tab) WHILE (TRUE) BTN(LEFT,DOWN,1403,796,1154) MMV(1403,796,10) BTN(LEFT,UP,1403,796,125) MMV(1403,796,405) KBD(VK_1,CLICK,2574) KBD(VK_2,CLICK,25210) MMV(1403,797,13574) SLEEP(0.01) Wend Wend IFB (CHKIMG("owari.bmp")=TRUE) THEN x=G_IMG_X + 1213 y=G_IMG_Y + 457 BTN(LEFT,DOWN,1213,457,858) endif Wend Sleep(2) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

専門家に質問してみよう