관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

SetForegroundWindow 본문

API 관련/Win32 API 함수

SetForegroundWindow

님투 2007. 11. 8. 23:25
반응형

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
Comments