「座標を指定しクリックする」プログラムをUWSCで作成する手順
【UWSC】で画面上の要素をクリックするには3つの方法がある。
- 座標を指定しクリックする
- テキストを指定しクリックする
- 画像を指定しクリックする
今回は、「座標を指定しクリックする」プログラムをUWSCで作成する手順をそこそこ詳しく解説していく。
Windowsマクロテクニック: 超速!!(UWSCの使い方)
- マクロの基礎知識
- 実践!サンプルマクロ集
- UWSCで使える関数や制御文
- 他のアプリケーションの高度な制御方法
- マクロをもっと使いこなそう
- あとがき
- 付録
- 索引
※UWSCの書籍として今も購入可能なモノは2種のみなので、その点を考慮すると★5になるが運よく中古があれば500円以下で購入可能!
Amazonレビューは★3.9
Windowsを自動化!UWSC逆引き本 Kindle版
- はじめに
- UWSCについて
- UWSCスクリプトをつくる
- 文字を操作する
- 配列を操作する
- ファイルを操作する
- ウィンドウを操作する
- システムを制御する
- ブラウザを操作する
- Officeスイートを操作する
- 高度な操作
※Kindle販売なので在庫がなくなることはない?
UWSCの読み物として暇なときに見るようにしている
Amazonレビューは★3.9
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逆引き本
- Windowsマクロテクニック: 超速!!(UWSC使い方)
- UWSCのダウンロード(2022.5.9現在Windows11でも動作確認済!)
2024.1.24時点でもWin11上でUWSCは使えているが、今後AIの進化!さしずめ ChatGPT , Microsoft365 Copilot , Power Automate が、2024年は更に加速度的に相乗効果でMicrosoft一強へ動き出すかもしれない🦆
それでは、またね~😎