【UWSC】画像認識 超入門編 UWSC 面倒な作業を自動化!
「Next」だったり「次へ」だったりボタンが変わるけど自動でクリックできないかな? キャプチャーとっておいたけど自動でそれを押せないかな?などなど、簡単に解決!? Twitterフォローなども自動化できるかも!? UWSC 画像認識・画像チェックの超入門編!BMP保存方法も記載^^
更新日: 2017年03月23日
「Next」だったり「次へ」だったりボタンが変わるけど自動でクリックできないかな? キャプチャーとっておいたけど自動でそれを押せないかな?などなど、簡単に解決!? Twitterフォローなども自動化できるかも!? UWSC 画像認識・画像チェックの超入門編!BMP保存方法も記載^^
更新日: 2017年03月23日
UWSC超入門編
UWSC 超入門編 面倒な同じ作業を自動化!のまとめ
上記内容が分かった上での、説明になります。
試しに、「GOOGLEを開き、ログインボタンを押してみる」
やることの流れ
1.画面キャプチャーを撮る
2.押したいボタン部分のみ残し、BMP(24ビット)で保存
3.UWSCで画像認識して、ボタンクリックを実行してみる!
1.画面キャプチャーを撮る
大体の人は知ってますよね!
キーボードの右上あたりにあるかなぁ・・・
2.ペイントに貼り付け、ボタン部分のみ残し、BMP保存
PrintScreenキーを押す。
ペイントを開き、
CTRL +V で貼り付け。
クリックしたいボタンを範囲選択し、
CTRL + C でコピーします。
コピーしたら、
表示しているペイントサイズ?を小さくします。
右下に□があるので、
それをクリックして、
左上に運んで画像を小さくしよう!
小さくなったら、それに
コピーしておいたものを貼り付けます。
(左図のボタンは拡大表示してます)
クリックしたい範囲以外を保存すると
クリックできなくなります。
(ログインボタンの周りに
余分なものを書いたり?すると
クリックできません。
クリックしたい範囲「のみ」を保存」
名前を付けて保存
BMPを選択します。
3.UWSCで画像認識して、ボタンをクリックしてみる
IFB CHKIMG("sample1.bmp") // 認識させたい画像ファイルを指定する
// 画像認識に成功した場合の処理をここに書く
MSGBOX("画像認識に成功しました。<#CR>G_IMG_X = " + G_IMG_X + "<#CR>G_IMG_Y = " + G_IMG_Y)
ELSE
// 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
ENDIF
上記方法では、座標が分かるだけ?です。
それをクリックするにはどうすれば良いか?
IFB CHKIMG("sample1.bmp") // 認識させたい画像ファイルを指定する
BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y)
ELSE // 画像認識に失敗した場合の処理をここに書く
MSGBOX("画像認識に失敗しました。")
ENDIF
1秒ごとに監視して、クリックしたい場合は?
While True
//例えば、C:\Users\コンピュータ名\デスクトッ\uwsc510\BMPフォルダにある
//TEST.bmpを監視。
fname = "C:\Users\ComputerName\Desktop\uwsc510\BMP\TEST.bmp"
ifb !CHKIMG( fname,0,1,1,IMG_MSK_BGR4 ) and !CHKIMG( fname, -1, 1, 1 )
//画像が見つからない場合…
Sleep(1)//とりあえず1秒待つ
else//画像が見つかった場合
gid = GETID("Google")//Googleを含むウィンドウを選択。
BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y)// 画像の位置を、クリック!!
sleep( 1)
endif
Wend
ESC押すまで実行したいよ!!!!
> ・ESCを押したら強制終了できるようにしたい
// これをスクリプトの最初の方に書いておく
sethotkey(VK_ESC, 0, "ForceStop")
// これをスクリプトの最後に書いておく
procedure ForceStop()
exitexit
fend
以前記載したのは間違っておりました。
失礼いたしました。
ログの書き出し方
fopen、fput、fclose
または
// これをスクリプトの最初に書いておく
OPTION LOGPATH="動作ログ.txt"
// print窓を非表示にする
logprint(false)
// 記録したいログの内容をprintする
print "記録したいログ"
UWSC掲示板にはいつも見ていますが
色んな情報が載っていて最高ですね…!皆さんお優しいですし、良い人ばかり!
注意点
IEの拡大、縮小などをやってしまうと
画像判定が上手く出来ませんorz
BMPも24ビット形式でないと、上手く反応してくれませんorz
私の適当プログラムも混じっているので
上手く行かないかもしれません…
CHECKIMGの説明
CHKIMG関数
指定画像が画面上にあるかチェックする
戻値 = CHKIMG( 画像名, [透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )
画像名
(相対パスまたは絶対パスで)画像ファイル名 ※BMP形式のみ
透過色/色無視:
0:指定なし(デフォルト)
1:左上、2:右上、3:左下、4:右下の1ピクセルの色を透過色として処理
-1:色を無視して形でチェックする
x1, y1, x2, y2:サーチ範囲
番号
複数ある場合の左上からの順番を指定
-1が指定された場合はヒットした数を戻値として返し、
座標情報はALL_IMG_X[], ALL_IMG_Y[] に格納
G_IMG_X、G_IMG_Yには最後にヒットした位置が入る
|24892852 view
|78172 view
|34119 view
|232173 view
|361319 view
|218915 view
旬のまとめをチェック
ファッション,美容,コスメ,恋愛
事件,ゴシップ,スポーツ,海外ニュース
映画,音楽,本,マンガ,アニメ
旅行,アウトドア,デート,カフェ,ランチ
インテリア,ライフハック,家事,節約
おかず,お弁当,おつまみ,簡単レシピ
エクササイズ,ダイエット,肩こり,健康
キャリア,転職,プレゼン,英語
Webサービス,スマートフォン,アプリ
クリエイティブ,写真,イラスト,建築
トリビア,不思議,名言,逸話
ユーモア,ネタ,癒し,動物,びっくり
過去の人気まとめをチェック