「座標を指定しクリックする」プログラムをUWSCで作成する手順
【UWSC】で画面上の要素をクリックするには3つの方法がある。
- 座標を指定しクリックする
- テキストを指定しクリックする
- 画像を指定しクリックする
今回は、「座標を指定しクリックする」プログラムをUWSCで作成する手順をそこそこ詳しく解説していく。
UWSC 今回使う命令は・・・8つ
- mmv
- while true … wend
- ifb then… endif
- copy
- PEEKCOLOR
- length
- sleep
- BTN
押したい座標の色を判断して座標位置をクリックする

まず判断したい場所の「座標」と「色」の情報をとる
SHIFTを押したら、その位置の座標と色をログに書き出す!って記事を書いているんだけど、今回もコレを使う。これはUWSC使うなら必須のツールになるね。
今回はちょっとだけグレードアップさせて色の値の桁数も表示するように追加している。
//log板を消去
sendstr(getid(GET_LOGPRINT_WIN), EMPTY, 1, TRUE)
// Shiftキーが押されたらマウス座標(x,y)と「PEEKCOLOR値とLength」を print
timer=0.2
while 1
if keyboard_enter() = 1 then
x=G_MOUSE_X
y=G_MOUSE_Y
PRINT "マウスカーソルの座標"
PRINT "x:" + X + " y:" + Y
print "PEEKCOLOR:" + PEEKCOLOR(x,y) + " len:" + length(PEEKCOLOR(x,y))
sleep(timer)
endif
wend
// サブルーチン
// Shiftキーが押されたら 1 が返る
Function keyboard_enter()
Result = 0
timer=0.2
sleep(timer)
while 1
if GETKEYSTATE(VK_SHIFT)
Result = 1
Exit
endif
sleep(timer)
wend
Fend
※SHIFTを押すと、ログ板に下記のようにprintされる。
マウスカーソルの座標
UWSCログ板からコピペ
x:74 y:587
PEEKCOLOR:10790820 len:8
※SHIFTを押しまくると、押した分だけ表示される。複数値を確かめる場合は、一つ一つメモ帳にコピペするか!ログ板にメモしてから次の座標でshiftを押すと後で分かりやすくなるが、一度実行を止めるとログ板を消すようにしているので、注意!!
今回の仕様は、座標(74,587)のカラー値が左から3桁107の時だけクリックする
こういった簡単なクリックマクロを作る。
クリックツールは巷にたくさんあるが、簡単には使えるもののUWSCが使えるなら、一度作成したら似たようなモノはいくらでも複製できるのと、後々追加機能を入れたり、部品化したりと汎用性が高いので、私はクリックツールは入れず、UWSCがクリックツールとなっている。
今回作ったUWSCモジュールはコレだよ!
- 5秒後に指定した数値の「灰色」なら、クリックするという簡単なモジュールである。
//moni0127i座標
//op_L
//マウスカーソルの座標
//x:74 y:587
//PEEKCOLOR:10790820
x1=74
y1=586
mmv(x1,y1)
while true
ifb copy(PEEKCOLOR(x1,y1),1,3)=107 and length(PEEKCOLOR(x1,y1))=8 then //▶灰色
sleep(5)
BTN(LEFT,CLICK,x1,y1)
sleep(0.1)
endif
wend
※座標と色の情報を変更してやると、どこでもどんな色でも押せる!
実は、
凄腕くんに変身する可能性はあるモジュールだぁ~~
更にこれのチェック用に座標を入れて、「PEEKCOLOR値とLength」を printする
座標が1つだけの時、
//log板を消去
sendstr(getid(GET_LOGPRINT_WIN), EMPTY, 1, TRUE)
// 指定した1座標のpeekcolor値を表示する
PRINT "座標 1"
x1=1092
y1=392
PRINT "x:" + x1 + " y:" + y1
print "PEEKCOLOR:" + PEEKCOLOR(x1,y1) + " len:" + length(PEEKCOLOR(x1,y1))
for i=1 to 10
mmv(x1,y1,100)
nexT
座標が2つの時、
//log板を消去
sendstr(getid(GET_LOGPRINT_WIN), EMPTY, 1, TRUE)
// 指定した2座標のpeekcolor値を表示する
x1=49
y1=1005
x2=1912
y2=1005
PRINT "座標 1"
PRINT "x:" + x1 + " y:" + y1
print "PEEKCOLOR:" + PEEKCOLOR(x1,y1) + " len:" + length(PEEKCOLOR(x1,y1))
PRINT "座標 2"
PRINT "x:" + x2 + " y:" + y2
print "PEEKCOLOR:" + PEEKCOLOR(x2,y2) + " len:" + length(PEEKCOLOR(x2,y2))
for i=1 to 10
mmv(x1,y1,500)
mmv(x2,y2,500)
next
※こんなのを私は4つまで、作ってテストしている。
動かない時は大概、座標のPEEKCOLOR値が変化している。ので、値を再確認するってわけね♡
これが分かるともうクリックツールをわざわざダウンロードしなくても、UWSCで座標のカラー値の情報を自分で取得すれば、画面の上なら、どこでもクリック!半自動プログラマーと”あなた”も今日、今ここで変身してしまったわけだぁ~~本当におめでとう~💛
まぁあれだよ、全部自動にして作成しなければ、自分の業務を効率化するぐらいなら私ぐらいのなんちゃってプログラマー程度が一番楽ちんにプログラム作れるんだよ。カネには一銭にもならんけどね。直接的には。。。🐸
でも、これで画面上なら全て押せるからね~~あら素敵ぃ~💗
強制停止はデフォだと、「ALT+F2」
※これは先に確認しておいた方が良いわよんw
私はこんな感じでカスタマイズしている。


編集後記
- UWSC HELP
- Windowsを自動化!UWSC逆引き本
- UWSCのダウンロードはググれば一番上に出てくるさぁ
- https://www.vector.co.jp/soft/winnt/util/se115105.html
- おーとくりっか~のダウンロードもググれば一番上に出てくるかな?
- https://forest.watch.impress.co.jp/library/software/autoclicker/
- EditorはやっぱVS-Codeが一番かな!?~全部コレでいけるからねぇ~
- https://azure.microsoft.com/ja-jp/products/visual-studio-code/
今だとHDDやSSDも大容量になっているので
うまく活用すれば自分だけのデータベースが作れたりもするから
UWSCは面白いツールになること間違いなし!
PythonやPADと併用すれば、それぞれの得意分野での使い分けとかも面白いかもしれないネ。🐸
それでは、またね~😎