UWSCについての質問:画像のカウント開始時に正確に反応できない理由
- UWSCの設定について質問させて頂きます。画面上に画像が現れた瞬間からカウントをスタートし、一定時間で左クリックを一回押すという処理を行いたいですが、現在はカウント開始前にUWSCの停止ボタンのポップアップが点滅しているため、画像が現れた瞬間に正確に反応できません。コンマ数秒の誤差ですが、より正確な処理を行いたいです。
- プログラムについての知識がなく、この問題に行き詰まってしまっています。どのようにすれば画像のカウント開始時に正確に反応できるようになるのか、アドバイスを頂きたいです。
- また、UWSCの設定や画像認識に関する知識についても教えていただけるとありがたいです。よろしくお願い致します。
- ベストアンサー
UWSCについて
UWSCの設定について質問させて頂きます。 私がしたいのは、画面上に画像が現れた瞬間からカウントをスタートし、一定時間で左クリックを一回押すというものです。 現在は下記のように試しており、大体は思い通りなのですが、カウントスタート前にUWSCの停止ボタンのポップアップが点滅状態のため画像が現れた瞬間に反応できてないような感じです。 コンマ数秒でのことですがどうしても正確にしたいのです。 プログラムについての知識もなく行き詰まってしまいました。 どうか宜しくお願い致します。 while true if GETKEYSTATE(VK_ESC)then exit ifb CHKIMG("画像.bmp",0) BTN(LEFT,CLIK,10000) ENDIF WEND
- tufu-
- お礼率100% (1/1)
- フリーウェア・フリーソフト
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
UWSCはずーと使ってませんのでいい加減な回答ですが SLEEPでは正確な時間が刻めなかったと思います。 BTN(LEFT,CLIK,10000) の行を視覚的に何かを表示させるかして、どの位ずれているか? を把握してみてはどうでしょうか? 待ち時間が長ければ、 GETTIMEと言う関数を使ってBTN関数の数秒前からSLEEPに切り替えるなんて事で SLEEPのズレを吸収できるのですが。 その他思いつく方法は、 CPUの使用率CPUUSERATE()を使って取得してCPUの消費量が少ない安定した時に 動作させるなどが使えたらズレが少なくなるかも知れません。
関連するQ&A
- 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 にしてくださいとあったのでそのままファイル名に使ってるのですがうまくいってません。 初心者ですが教えていただけないでしょうか?
- ベストアンサー
- その他(インターネット・Webサービス)
- 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 なんとか こんな感じまで 出来ました よろしくお願いいたします
- 締切済み
- Windows XP
- 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→クリック というものを作りたいのですが、混乱してきて分からないので教えてください。
- 締切済み
- フリーウェア・フリーソフト
- 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のスクリプトについて
画像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で任意ボタンをおした時 複数条件分岐
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について
画像が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のプログラミングついて教えてください。
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について
画像認識で質問があります。 画像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でマクロ作成
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ファイルと同じ所に入れていますが違う所で引っかかるようです。
- 締切済み
- その他(インターネット・Webサービス)
お礼
回答ありがとうございます。 正確に計るのは難しそうですね。 スクリプトをループさせていると(応答なし)状態になることもあるためCPUに負荷をかけないでやってみたいと思います。 ありがとうございました!