AutoHotKey(오토핫키) 설명서 PostMessage / SendMessage
PostMessage / SendMessage
윈도우나GUI컨트롤에 윈도우 메세지를 송신한다.(SendMessage(은)는 응답을 기다려 결과를 취득할 수 있다)
PostMessage, Msg [, wParam, lParam, Control, WinTitle, WinText, ExcludeTitle, ExcludeText] SendMessage, Msg [, wParam, lParam, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]
Parameters
인수명 | 설명 |
---|---|
Msg |
윈도우 메세지 번호. 일반적인 메세지의 일람에 대해서는,WinAPI Database for VB Programmer의 알파벳순서 표시 「W」의 항근처를 참조. |
wParam | 메세지의 인수.0혹은 생략 때는0하지만 보내진다. |
lParam | 메세지의 인수 |
Control |
생략 혹은 공백 때는, 윈도우에 직접 메세지가 보내진다. 그 이외의 지정 방법은윈도우 지정의 방법참조. |
WinTitle | 윈도우 지정의 방법참조. |
WinText | |
ExcludeTitle | |
ExcludeText |
ErrorLevel
PostMessage
성공하면0, 윈도우가 발견되지 않는등의 문제가 발생하면1
SendMessage
윈도우가 발견되지 않는등의 문제가 발생하면 「FAIL」.
그 이외는, 메세지의 반환값(정수).
메세지의 종류야는은, 「reply」
Remarks
Msg,wParam,lParam인수에는0...4294967295의 수치를 지정한다.
0xFF(와)과 같이16진수로 지정하는 일도 가능.
WM_SETTEXT등에서wParam,lParam에 문자열을 건네주고 싶은 경우는, 「SendMessage, 0xC, 0, "New Title"」(와)과 같이 인수를 「"」(으)로 둘러싼다.
변수의 문자열을 건네주고 싶은 경우는, 「SendMessage, 0xC, 0, &NewTitle」(와)과 같이 변수명의 전에 「&」(을)를 붙인 것을 지정한다.
함부로 윈도우 메세지를 송신하면 불편이 발생하는 일이 있으므로 주의해 사용하는 것.
SendMessage커멘드는, 메세지를 송신 후 최대5초간 응답을 기다린다.
5초이내에 응답이 없었던 경우,ErrorLevel(은)는 「FAIL」(이)가 된다.
PostMessage커멘드는 메세지를 윈도우의 메시지 큐에 추가해 즉석에서 종료한다.
WinTitle에 「ahk_id 0xFFFF」(을)를 지정하면, 존재하는 모든 윈도우에 메세지를 송신한다.
Msg에 「0x1A」(WM_SETTINGCHANGE)등을 지정할 경우에 사용하면 좋다.
Related
Message List, Message Tutorial, Automating Winamp, ControlSend, WinMenuSelectItem
Example(s)
; Turn Monitor Off: SendMessage, 0x112, 0xF170, 2,, Program Manager ; 0x112 is WM_SYSCOMMAND, 0xF170 is SC_MONITORPOWER. ; Note for the above: Use -1 in place of 2 to turn the monitor on. ; Use 1 in place of 2 to activate the display's "low power" mode.
; Start the user's chosen screen saver: SendMessage, 0x112, 0xF140, 0,, Program Manager ; 0x112 is WM_SYSCOMMAND, and 0xF140 is SC_SCREENSAVE.
; Scroll up by one line (for a control that has a vertical scroll bar): ControlGetFocus, control, A SendMessage, 0x115, 0, 0, %control%, A
; Scroll down by one line: ControlGetFocus, control, A SendMessage, 0x115, 1, 0, %control%, A
; This example asks Winamp which track number is currently active: SetTitleMatchMode, 2 SendMessage, 1024, 0, 120, - Winamp if ErrorLevel <> FAIL { ErrorLevel++ ; Winamp's count starts at "0", so adjust by 1. MsgBox, Track #%ErrorLevel% is active or playing. }
'AutoHotKey > Commands' 카테고리의 다른 글
AutoHotKey(오토핫키) 설명서 Progress / SplashImage (0) | 2014.08.14 |
---|---|
AutoHotKey(오토핫키) 설명서 Process (0) | 2014.08.14 |
AutoHotKey(오토핫키) 설명서 PixelSearch (1) | 2014.08.14 |
AutoHotKey(오토핫키) 설명서 PixelGetColor (0) | 2014.08.14 |
AutoHotKey(오토핫키) 설명서 Pause (0) | 2014.08.14 |