일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 배열
- Threads
- 식의 설명
- StringGetPos
- IF (식)
- EnvSet
- Menu
- 식
- MouseClick
- EnvSub
- ControlGetText
- API
- IfInString
- if(식)
- SetControlDelay
- 함수
- SetEnv
- EnvMult
- EnvAdd
- Var:=식
- if
- DetectHiddenWindows
- SetKeyDelay
- autohotkey
- SetMouseDelay
- IfWinExist
- ControlSend
- Blocks
- SetTitleMatchMode
- EnvDiv
- Today
- Total
ㄴrㅎnㅂrㄹrㄱi
SetForegroundWindow 본문
SetForegroundWindow
지정된 윈도우를 작성한 스렛드를 foreground로 해, 그 윈도우를 액티브하게 합니다.이후, 이 윈도우에 키보드 입력이 보내집니다.시스템은, 다른 스렛드보다 조금 높은 우선도를, foreground 윈도우를 작성한 스렛드에 할당합니다.
BOOL SetForegroundWindow( HWND hWnd // 윈도우 핸들 );
USER32.DLL
인수
- hWnd
-
foreground로 하는 윈도우의 핸들을 지정합니다.
반환값
성공했을 경우는 0 이외의 값이 돌아갑니다.
실패했을 경우는 0 하지만 돌아갑니다.확장 에러 정보를 취득하려면 , GetLastError 함수를 사용합니다.
해설
foreground 윈도우는 Z 오더가 가장 위의 윈도우입니다.
Windows 98/Me/2000/XP: 시스템은 foreground를 설정할 수 있는 프로세스를 제한하고 있습니다.이하의 몇개의 조건을 채우는 경우에게만, foreground 윈도우가 설정됩니다.
-
호출 프로세스가 foreground 프로세스인 경우.
-
호출 프로세스가 foreground 프로세스에 의해서 기동되었을 경우.
-
호출 프로세스가 마지막 입력 이벤트를 받았을 경우.
-
foreground 프로세스가 없는 경우.
-
foreground 프로세스가 디버그 되고 있는 경우.
-
LockSetForegroundWindow 함수에 의해서, foreground가 락 해제되고 있는 경우.
-
foreground 락 타임 아웃 시간이 지났을 경우.타임 아웃 시간은 SystemParametersInfo 함수에 의해서 설정됩니다.
-
Windows 2000/XP: 어느 메뉴도 액티브하지 않은 경우.
이 변경 때문에, 유저가 다른 윈도우로 작업하고 있는 동안은, 어플리케이션은 윈도우를 foreground로 설정할 수 없습니다.대신에 FlashWindowEx 함수가 불려 가 윈도우가 플래시 되고 유저에게 알게 됩니다.다만, Windows 98/Me 그럼, 만약 foreground가 아닌 스렛드가 SetForegroundWindow 함수를 호출하고, 호출 스렛드 이외의 스렛드에 의해서 작성된 윈도우의 핸들을 건네주었을 경우는, 윈도우는 태스크바상에서 플래시 되지 않습니다. SetForegroundWindow 함수를 Windows 98 / Windows NT 4.0 (와)과 같이 행동하게 하려면 , 어플리케이션 인스톨시에 SystemParametersInfo 함수에 SPI_SETFOREGROUNDLOCKTIMEOUT (을)를 지정하는 것에 의해서 foreground 락 타임 아웃의 값을 0 (으)로 변경합니다.다만, Windows 2000/XP 그럼, 호출 스렛드가 foreground를 변경할 수 있는 상태에 없는 경우에는 SystemParametersInfo 함수는 실패해 버리므로, 이 함수는 셋업 어플리케이션이나 패치 어플리케이션에 의해서 불려 가야 합니다.
foreground 윈도우를 설정할 수 있는 상태에 있는 프로세스는, AllowSetForegroundWindow 함수를 호출하는 것에 의해서, 다른 프로세스가 foreground 윈도우를 설정할 수 있도록 할 수 있습니다.
foreground 프로세스는, LockSetForegroundWindow 함수를 호출하는 것에 의해서, SetForegroundWindow 함수 호출을 무효화시킬 수 있습니다.
대응 정보
Windows 95 이후 / Windows NT 3.1 이후
'API 관련 > Win32 API 함수' 카테고리의 다른 글
SetMenu (0) | 2007.11.08 |
---|---|
SetLastError (0) | 2007.11.08 |
SetFilePointer (0) | 2007.11.08 |
SetEndOfFile (0) | 2007.11.08 |
SetCursor (0) | 2007.11.08 |