다음을 통해 공유


SetThreadExecutionState 함수(winbase.h)

애플리케이션이 사용 중임을 시스템에 알릴 수 있으므로 애플리케이션이 실행되는 동안 시스템이 절전 모드로 전환되거나 디스플레이가 꺼지는 것을 방지할 수 있습니다.

구문

EXECUTION_STATE SetThreadExecutionState(
  [in] EXECUTION_STATE esFlags
);

매개 변수

[in] esFlags

스레드의 실행 요구 사항입니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
ES_AWAYMODE_REQUIRED
0x00000040
멀리 모드를 사용하도록 설정합니다. 이 값은 ES_CONTINUOUS 지정해야 합니다.

컴퓨터가 절전 모드인 것처럼 보이는 동안 데스크톱 컴퓨터에서 중요한 백그라운드 처리를 수행해야 하는 미디어 녹화 및 미디어 배포 애플리케이션에서만 어웨이 모드를 사용해야 합니다. 설명 부분을 참조하세요.

ES_CONTINUOUS
0x80000000
ES_CONTINUOUS 사용하고 다른 상태 플래그 중 하나를 사용하는 다음 호출이 지워지게 될 때까지 설정되는 상태가 계속 적용되도록 시스템에 알릴 수 있습니다.
ES_DISPLAY_REQUIRED
0x00000002
디스플레이 유휴 타이머를 다시 설정하여 디스플레이가 켜지도록 합니다.
ES_SYSTEM_REQUIRED
0x00000001
시스템 유휴 타이머를 다시 설정하여 시스템이 작동 상태가 되도록 합니다.
ES_USER_PRESENT
0x00000004
이 값은 지원되지 않습니다. ES_USER_PRESENT 다른 esFlags 값과 결합되면 호출이 실패하고 지정된 상태가 설정되지 않습니다.

반환 값

함수가 성공하면 반환 값은 이전 스레드 실행 상태입니다.

함수가 실패하면 반환 값은 NULL입니다.

설명

시스템은 로컬 키보드 또는 마우스 입력, 서버 활동 및 창 포커스 변경과 같은 활동을 자동으로 검색합니다. 자동으로 검색되지 않는 활동에는 디스크 또는 CPU 작업 및 비디오 디스플레이가 포함됩니다.

ES_CONTINUOUS 없이 SetThreadExecutionState를 호출하면 유휴 타이머가 다시 설정됩니다. 디스플레이 또는 시스템을 작업 상태로 유지하려면 스레드가 SetThreadExecutionState를 주기적으로 호출해야 합니다.

전원 관리 컴퓨터에서 제대로 실행하려면 팩스 서버, 응답 컴퓨터, 백업 에이전트 및 네트워크 관리 애플리케이션과 같은 애플리케이션은 이벤트를 처리할 때 ES_SYSTEM_REQUIREDES_CONTINUOUS 모두 사용해야 합니다. 비디오 플레이어 및 프레젠테이션 애플리케이션과 같은 멀티미디어 애플리케이션은 사용자 입력 없이 장시간 비디오를 표시할 때 ES_DISPLAY_REQUIRED 사용해야 합니다. 워드 프로세서, 스프레드시트, 브라우저 및 게임과 같은 애플리케이션은 SetThreadExecutionState를 호출할 필요가 없습니다.

ES_AWAYMODE_REQUIRED 값은 시스템이 절전 모드인 것처럼 보이는 동안 텔레비전 콘텐츠 녹화 또는 다른 디바이스로 미디어 스트리밍과 같은 백그라운드 작업을 수행해야 하는 미디어 애플리케이션에서 절대적으로 필요한 경우에만 사용해야 합니다. 중요한 백그라운드 처리가 필요하지 않거나 휴대용 컴퓨터에서 실행되는 애플리케이션은 시스템이 진정한 절전 모드로 전환하여 전원을 절약하지 못하도록 하기 때문에 멀리 모드를 사용하도록 설정해서는 안 됩니다.

멀리 모드를 사용하도록 설정하기 위해 애플리케이션은 ES_AWAYMODE_REQUIREDES_CONTINUOUS 모두 사용합니다. 멀리 모드를 사용하지 않도록 설정하려면 애플리케이션이 ES_CONTINUOUS 사용하여 SetThreadExecutionState를 호출하고 ES_AWAYMODE_REQUIRED 지웁니다. 멀리 모드를 사용하도록 설정하면 컴퓨터를 절전 모드로 전환할 수 있는 모든 작업이 대신 사용 중지 모드로 전환됩니다. 시스템에서 사용자 입력이 필요하지 않은 작업을 계속 수행하는 동안 컴퓨터가 절전 모드인 것처럼 보입니다. 어웨이 모드는 절전 모드 유휴 타이머에 영향을 주지 않습니다. 타이머가 만료되면 시스템이 절전 모드로 들어가지 않도록 하려면 애플리케이션도 ES_SYSTEM_REQUIRED 값을 설정해야 합니다.

SetThreadExecutionState 함수는 사용자가 컴퓨터를 절전 모드로 전환하지 못하도록 하는 데 사용할 수 없습니다. 애플리케이션은 사용자가 노트북의 덮개를 닫거나 전원 단추를 누를 때 특정 동작을 예상해야 합니다.

이 함수는 화면 보호기 실행을 중지하지 않습니다.

예제

// Television recording is beginning. Enable away mode and prevent
// the sleep idle time-out.
//
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_AWAYMODE_REQUIRED);

//
// Wait until recording is complete...
//

//
// Clear EXECUTION_STATE flags to disable away mode and allow the system to idle to sleep normally.
//
SetThreadExecutionState(ES_CONTINUOUS);

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

전원 관리 함수

SetSuspendState

SetSystemPowerState

WM_POWERBROADCAST