【UWSC】マウス位置の座標とPEEKCOLOR値をログに書き出す

目次

今のマウス位置でShiftを押すとログに座標とPEEKCOLOR値を出力する

これまでは、テキスト or 画像一致で座標を指定していたので、直接座標を指定してクリックする場面は少なかったが、2020年12月初頭のJRAホームページ変更に伴い自身のUWSCモジュール変更をするにあたり「Shiftキー」を押すと、ログに「座標位置とPEEKCOLOR値を表示する」UWSCモジュールを作成する。

UWSCで使うための仮想キー

キー表記意味
VK_A~VK_Z
VK_0~VK_9
VK_WINWindowsキー
VK_ALT
VK_CTRL
VK_ESC
VK_BACK
VK_TAB
VK_RETURN
VK_SHIFT
VK_MENU[Menu]キー
VK_PAUSE[Pause]キー
VK_SPACE
VK_PRIOR[PageUp]キー
VK_NEXT[PageDown]キー
VK_END[End]キー
VK_HOME[Home]キー
VK_LEFT
VK_UP
VK_RIGHT
VK_DOWN
VK_SNAPSHOT
VK_INSERT[Insert]キー
VK_DELETE[Delete]キー
VK_MULTIPLY[*]キー
VK_ADD[+]キー
VK_SUBTRACT[-]キー
VK_DIVIDE[/]キー
VK_NUMPAD0~VK_NUMPAD9Numpad ~
VK_F1~VK_F12
VK_NUMROCK[NumLock]キー
VK_SCROLL[ScrollLock]キー
VK_START[Windows]キー
VK_RCTRL
VK_RSHIFT
VK_CONTROL
VK_CAPITAL[CapsLock]キー
VK_KANA半角キー
VK_KANJI全角キー
VK_CONVERT変換キー
VK_NONCONVERT無変換キー

座標取りは、その画面で唯一の文字(文字列)を取り出すのが一番簡単

UWSCだろうとPythonだろうと、このやり方がスクレイピングやクリック指定では一番簡単な方法。文字列そのものがボタンやリンクになっている場合は、取得した位置そのまま座標に使えるし、そこから+ーでの座標位置をしクリックするにしても、既に文字(文字列)がガイドの役割をするので、後からプログラムを見てもとても修正しやすい。

今のマウス位置でShiftを押すと座標とPEEKCOLOR値を出力するサンプル

そのままコピペして使えるはず。

//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

PEEKCOLOR値2点一致で範囲を区切ることも可能になる。

これでUWSC+Chrome,UWSC+新Edgeでも全ての画面クリックは可能になるはずだ。

編集後記

それでは、またね~😎

この記事を書いた人

マクロで半自動化!GO!GO!!PROGRAMMING
管理人:あどのまつり
馬齢:牡50代(後)✖1

2023年はコロナ明けでタイ旅行にいきThai!!

目次