어떤 종류의 미디어를 재생하는 응용 프로그램이 있으며 응용 프로그램이 실행될 때 컴퓨터가 잠자기하지 못하게하고 싶습니다. 필자는 P/Invoke를 통해이 작업을 수행 할 수 있다는 사실을 알게되었습니다.컴퓨터가 잠자기 상태가되는 것을 방지합니다.
디스플레이가 꺼져 있어야하며 컴퓨터가 절전 모드로 전환되지 않아야합니다. 그래서 다음과 같이 테스트했습니다.
b.Click += (x, y) =>
{
SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_AWAYMODE_REQUIRED);
Debug.WriteLine("Power line executed");
};
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags);
[FlagsAttribute]
public enum EXECUTION_STATE : uint
{
ES_AWAYMODE_REQUIRED = 0x00000040,
ES_CONTINUOUS = 0x80000000,
ES_DISPLAY_REQUIRED = 0x00000002,
ES_SYSTEM_REQUIRED = 0x00000001
}
그러나 컴퓨터는 잠시 후 절전 모드로 전환되었습니다. 여기서 누락 된 것이 무엇입니까?
수퍼 유저에게 더 좋은 답변을 얻을 수 있습니다. –
@ David, 그는 프로그래밍 방식의 솔루션을 찾고 있습니다. –
가능한 복제본 [C# : 대기 모드로 들어가는 것을 방지하는 방법] (http://stackoverflow.com/questions/789039/c-how-to-prevent-a-laptop-fromgoing-into- 대기) –