Sunday, November 30, 2014

autohotkeyでコントロールのClassNNを調べる

Windowsで自動操作を行うためにautohotkeyを調べています。

クリックするコントロールを指定する場合に、ClassNNを調べる必要があり、それはautohotkey付属のWindow spyを使うということなのですが、Windows 8.1では、shift+alt+tabでWindow spyにフォーカスがうまく移せません。

で、調べているとautohotkeyでコントロールの情報を取得することができるようです。これを少し変更してみました。

使い方は次の通りです。


  1. 調べたいコントロールの上にマウスをのせて、Ctrlキーとマウスの左ボタンを押す。
  2. ポップアップで情報が表示され、その情報がクリップボードにコピーされます。

; Reference:
; http://www.autohotkey.com/board/topic/116344-window-spy-shiftalttab-doesnt-freeze-text/

^LButton::
;get the position of mouse pointer and a handle id of the control under the mouse pointer
MouseGetPos, M_X, M_Y, M_Win, M_Ctrl, 2

;get text in the control
ControlGetText, OutputText,,ahk_id %M_Ctrl%

;set focus to the control to get ClassNN of the %M_Ctrl%
ControlFocus,,ahk_id %M_Ctrl%
ControlGetFocus, OutputClassNN, ahk_id %M_Win%

info = Win:%M_Win%`nCtrl:%M_Ctrl%`nText:%OutputText%`nClassNN:%OutputClassNN%`n

Msgbox, %info% 
Clipboard = %info%
Return

No comments: