관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

MouseGetPos 마우스 커서의 위치, 마우스아래의 윈도우나 컨트롤을 취득 본문

AUTOHOTKEY/레퍼런스

MouseGetPos 마우스 커서의 위치, 마우스아래의 윈도우나 컨트롤을 취득

님투 2007. 11. 5. 14:53
반응형

MouseGetPos

마우스 커서의 위치, 마우스아래의 윈도우나 컨트롤을 취득

MouseGetPos, OutputVarX [, OutputVarY, OutputVarWin, OutputVarControl ,AltMethod] 

Parameters


인수명 설명
OutputVarX/Y 마우스 커서의 횡좌표와 세워 좌표를 격납하는 변수명
OutputVarWin 마우스아래의 윈도우의 윈도우 핸들을 격납하는 변수명.
윈도우 관련 커멘드의Title인수에 「ahk_id %OutputVarWin%」라고 하도록(듯이) 해 지정하는 것으로, 그 윈도우를 지정할 수 있다.
OutputVarControl 마우스아래의 컨트롤의ClassNN(을)를 격납하는 변수명.
취득한 문자열은, 컨트롤 관련 커멘드의Control인수로 사용할 수 있다.
AltMethod 이하의 물건의 화를 지정한다
1
OutputVarControl의 취득에 다른 방법을 사용한다.
이 방법에서는,MDI윈도우의 컨트롤을 잘 취득할 수 있을 가능성이 있지만, 다른 목적에서는 잘 동작하지 않는 경우가 있다.
2
OutputVarControl에 컨트롤의ClassNN(은)는 아니고 윈도우 핸들을 취득한다

Remarks

통상,X,Y좌표는 액티브 윈도우의 좌상으로부터의 상대 좌표로 취득된다.
CoordMode,Mouse,Screen(을)를 실행하면, 스크린 좌상으로부터의 좌표로 취득되게 된다.

인수가 생략 된 부분의 정보의 취득은 행해지지 않는다.

윈도우나 컨트롤의 취득에 실패했을 경우는, 해당하는 변수는 비운다.

AltMethod에1(을)를 지정하고 있지 않으면 일부의 케이스로 올바른 결과를 얻을 수 없다.
그러나,AltMethod에1(을)를 지정하면 반대로 올바른 결과를 얻을 수 없는 경우도 있다
이하와 같이WM_NCHITTEST(을)를 사용하는 것으로, 보다 확실히 올바른 결과를 얻을 수 있게 된다.

CoordMode,Mouse,Screen
MouseGetPos,x,y,hwnd,ctrl,3
SendMessage,0x84,0,%lp%,,ahk_id %ctrl%
If ErrorLevel=4294967295
	MouseGetPos,,,,ctrl,2

Related

CoordMode, WinGet, SetDefaultMouseSpeed, MouseClick, MouseClickDrag, MouseMove


Example(s)

MouseGetPos, xpos, ypos 
Msgbox, The cursor is at X%xpos% Y%ypos%. 

; This example allows you to move the mouse around to see
; the title of the window currently under the cursor:
#Persistent
SetTimer, WatchCursor, 100
return

WatchCursor:
MouseGetPos, , , id, control
WinGetTitle, title, ahk_id %id%
WinGetClass, class, ahk_id %id%
ToolTip, ahk_id %id%`nahk_class %class%`n%title%`nControl: %control%
return
반응형
Comments