プロが教える店舗&オフィスのセキュリティ対策術

画像A~Gがあり、前半は画像Bがあればクリックし画像Cが出るページに進み画像Cをクリックし処理させ、ただし画像Aがあれば別の処理に分岐させ、D画像をクリック→E画像が出るページヘ移動し、E画像をクリック→F・・・とGまで連鎖させたいのです。
さらにGの処理まで終了したら、またB画像の検索に戻らせたいのです。
色んなサイトを探して、下記のように組んでみたのですがイマイチ上手く動きません。
どうか助けていただけないでしょうか?

While true  // 繰り返し ここから
ifb chkimg("B.bmp") = true
 x=G_IMG_X    // 画像の座標をxへ代入
 y=G_IMG_Y    // 画像の座標をyへ代入
 BTN(LEFT,DOWN,x,y,80)   // 画像の場所を左クリック
 BTN(LEFT,UP,x,y,80)    // 画像の場所を左クリック
 sleep(2)
Ifb chkimg("C.bmp") = true
 x=G_IMG_X    // 画像の座標をxへ代入
 y=G_IMG_Y    // 画像の座標をyへ代入
 BTN(LEFT,DOWN,G_IMG_X-10,G_IMG_Y,80)   // 画像の場所を左クリック
 BTN(LEFT,UP,G_IMG_X-10,G_IMG_Y,80)    // 画像の場所を左クリック
 sleep(0.5)
ENDIF // 画像判定 終了

Elseif chkimg("A.bmp")=true
 x=G_IMG_X    // 画像の座標をxへ代入
 y=G_IMG_Y    // 画像の座標をyへ代入
 BTN(LEFT,DOWN,x,y,80)   // 画像の場所を左クリック
 BTN(LEFT,UP,x,y,80)    // 画像の場所を左クリック
 sleep(1)
NEXT
ifb chkimg("D.bmp")                           
x=G_IMG_X     // 画像の座標をxへ代入
y=G_IMG_Y     // 画像の座標をyへ代入
BTN(LEFT,DOWN,x,y,80)   // 画像の場所を左クリック
BTN(LEFT,UP,x,y,80)    // 画像の場所を左クリック
sleep(0.5)
fb chkimg("E.bmp")                           
x=G_IMG_X     // 画像の座標をxへ代入
y=G_IMG_Y     // 画像の座標をyへ代入
BTN(LEFT,DOWN,x,y,80)   // 画像の場所を左クリック
BTN(LEFT,UP,x,y,80)    // 画像の場所を左クリック
sleep(0.5)
~Gまで続く~
 ENDIF
 WEND  //ここまで

A 回答 (1件)

そういう画像を見てクリックして次へ…みたいな処理では、タイマーで見込み処理するんじゃなくて、今クリックした画像が消えることを確認してから次の画像判定に進むように書く方が間違いがなく、また待ち時間の短縮にもなります。



というのを踏まえて書いてみたのが以下です。エラーが出ないことだけ確認しましたが、後はそちらで実験してみてください。また当然ながら、画像ファイルはスクリプトと同じフォルダに入れておかないとUWSCが見つけられず、「中断しますか?」と言ってきて正常動作しません。

DIM bmpf[] = "B.bmp" , "C.bmp" , "A.bmp" , "D.bmp" , "E.bmp" , "F.bmp" , "G.bmp" //画像ファイル名
DIM ofs[] = 0,10,0,0,0,0,0 //クリック位置オフセット(内側狙いしたければ5くらい足す)
cnt = 0 //カウンタクリア

WHILE TRUE

IFB CHKIMG(bmpf[cnt])
BTN(LEFT,CLICK,G_IMG_X + ofs[cnt] , G_IMG_Y + ofs[cnt] , 40) //見つけた画像をクリック

WHILE CHKIMG(bmpf[cnt]) //画像が消えるまで待つループ
SLEEP(0.1) //CPU使用率を無駄に上げない対策
WEND

cnt = cnt + 1
IF cnt = 7 THEN cnt = 0 //G.bmpに達したのでゼロに戻す

ENDIF

SLEEP(0.1) //CPU使用率を無駄に上げない対策

WEND
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています