다음을 통해 공유


AllowSetForegroundWindow 함수(winuser.h)

SetForegroundWindow 함수를 사용하여 지정된 프로세스가 포그라운드 창을 설정할 수 있도록 합니다. 호출 프로세스는 이미 포그라운드 창을 설정할 수 있어야 합니다. 자세한 내용은 이 항목의 뒷부분에 나오는 주의를 참조하십시오.

구문

BOOL AllowSetForegroundWindow(
  [in] DWORD dwProcessId
);

매개 변수

[in] dwProcessId

형식:DWORD

포그라운드 창을 설정할 수 있는 프로세스의 식별자입니다. 이 매개 변수가 ASFW_ANY 경우 모든 프로세스가 포그라운드 창을 설정할 수 있습니다.

반환 값

형식: BOOL

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 호출 프로세스가 포그라운드 창을 설정할 수 없는 경우 함수가 실패합니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

시스템은 포그라운드 창을 설정할 수 있는 프로세스를 제한합니다. 일반적으로 프로세스는 다음과 같은 경우에만 SetForegroundWindow 함수를 호출하여 포그라운드 창을 설정할 수 있습니다.

  • 다음 조건은 모두 true입니다.
    • 호출 프로세스는 UWP 앱이나 Windows 8 또는 8.1용으로 설계된 Windows 스토어 앱이 아닌 데스크톱 애플리케이션에 속합니다.
    • 전경 프로세스는 LockSetForegroundWindow 함수에 대한 이전 호출로 SetForegroundWindow에 대한 호출을 사용하지 않도록 설정하지 않았습니다.
    • 포그라운드 잠금 제한 시간이 만료되었습니다(SystemParametersInfoSPI_GETFOREGROUNDLOCKTIMEOUT 참조).
    • 활성 메뉴가 없습니다.
  • 또한 다음 조건 중 하나 이상이 true입니다.
    • 호출 프로세스는 포그라운드 프로세스입니다.
    • 호출 프로세스는 포그라운드 프로세스에 의해 시작되었습니다.
    • 현재 포그라운드 창이 없으므로 포그라운드 프로세스가 없습니다.
    • 호출 프로세스에서 마지막 입력 이벤트를 수신했습니다.
    • 포그라운드 프로세스 또는 호출 프로세스가 디버그되고 있습니다.

포그라운드 창을 설정할 수 있는 프로세스는 AllowSetForegroundWindow를 호출하여 다른 프로세스가 포그라운드 창을 설정할 수 있도록 할 수 있습니다. dwProcessId 매개 변수로 지정된 프로세스는 입력이 해당 프로세스로 전달되지 않는 한 다음에 사용자가 입력을 생성할 때 또는 AllowSetForegroundWindow에 대한 이전 호출과 동일한 프로세스가 지정되지 않는 한 프로세스에서 AllowSetForegroundWindow를 호출할 때 포그라운드 창을 설정하는 기능을 잃게 됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll
API 세트 ext-ms-win-ntuser-window-l1-1-0(Windows 8 도입)

추가 정보

개념

LockSetForegroundWindow

참조

SetForegroundWindow

Windows