[AHK]ControlGetでオブジェクトを取得できない

ControlGetでスクロールバーのハンドルを取得しようとしたが、うまく取得できなかった。

原因

ControlGetの引数は下記のようになっている。

ControlGet, OutputVar, Cmd [, Value, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]

この、Controlのみを指定した場合は、うまくいかないことがあるみたい。WinTitleにWinGetで取得した、Window Handleを指定すると、うまく動くようになった。

^+b::
	WinGet, AWinHWND, ID,A
	MouseGetPos, msX, msY, msWin, msCtrl
	ControlGet, curCtrlHwndNG, Hwnd,,%msCtrl%			;これだけだとダメ。
	ControlGet, curCtrlHwnd, Hwnd,,%msCtrl%,ahk_id %AWinHWND%	;ウィンドウ指定を付けるとOK
	msgbox,% "AWinHWND: " AWinHWND "`nmsCtrl: " msCtrl "`ncurCtrlHwndNG: " curCtrlHwndNG "`ncurCtrlHwnd: " curCtrlHwnd
Return

また、ウィンドウ指定を付けない場合は、WinExistを実行しておくと、WinExistで取得したウィンドウに対しての操作という扱いになるのか、うまく動くようになった。

^+c::
	actWinbyWinExist := WinExist("A")		;これが無いと、ControlGet出来ない。
	MouseGetPos, msX, msY, msWin, msCtrl
	ControlGet, curCtrlHwnd, Hwnd,,%msCtrl%
	msgbox,% "actWinbyWinExist: " actWinbyWinExist "`nmsCtrl: " msCtrl "`ncurCtrlHwnd: " curCtrlHwnd
Return

 

関連

ControlGet – AutoHotkey Wiki

 

コメント

PAGE TOP
Ads Block Detector Powered by codehelppro.com
Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました