일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- EnvSub
- MouseClick
- SetControlDelay
- DetectHiddenWindows
- 식
- ControlGetText
- SetKeyDelay
- ControlSend
- API
- StringGetPos
- if
- SetTitleMatchMode
- EnvAdd
- 배열
- 식의 설명
- Threads
- EnvSet
- EnvDiv
- Menu
- 함수
- IF (식)
- IfWinExist
- EnvMult
- Blocks
- Var:=식
- SetMouseDelay
- if(식)
- autohotkey
- SetEnv
- IfInString
- Today
- Total
ㄴrㅎnㅂrㄹrㄱi
PostMessage / SendMessage 윈도우나GUI컨트롤에 윈도우 메세지를 송신한다.(SendMessage(은)는 응답을 기다려 결과를 취득할 수 있다) 본문
PostMessage / SendMessage 윈도우나GUI컨트롤에 윈도우 메세지를 송신한다.(SendMessage(은)는 응답을 기다려 결과를 취득할 수 있다)
님투 2007. 11. 5. 15:07PostMessage / 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 > 레퍼런스' 카테고리의 다른 글
Progress / SplashImage progress bar나 스플래쉬 이미지의 윈도우를 표시·갱신한다 (0) | 2007.11.05 |
---|---|
Process 특정의 프로세스가 존재하는지 체크하거나 우선도를 변경하거나 종료시키거나 한다 (0) | 2007.11.05 |
PixelSearch 지정 범위로 지정한 색이 존재하면, 그 좌표를 취득한다 (0) | 2007.11.05 |
PixelGetColor 지정 좌표에 표시되고 있는 색을 취득한다 (0) | 2007.11.05 |
Pause 실행중의스렛드(을)를 정지한다 (0) | 2007.11.05 |