IT분야/C#
[C#] 절전모드/화면 꺼짐 방지
suroMind
2011. 10. 31. 11:03
참조 : http://msdn.microsoft.com/en-us/library/windows/desktop/aa373208(v=vs.85).aspx
시간이 없어서 화면 꺼지지 안꺼지는지만 테스트를 해봤습니다.
이 부분은 처음 해보는거라 검색을 해도 원하는 자료가 많지 않네요..
마음에 드는 예제소스를 찾지 못해서..ㅜ
msdn사이트에서 참조하였으며 나머지는 테스트해보시길 바랍니다.
public class Win32 { [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] 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 // Legacy flag, should not be used. // ES_USER_PRESENT = 0x00000004 } public static void PreventScreenAndSleep() { SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_SYSTEM_REQUIRED | EXECUTION_STATE.ES_AWAYMODE_REQUIRED | EXECUTION_STATE.ES_DISPLAY_REQUIRED); } public static void AllowMonitorPowerdown() { Console.WriteLine(SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS)); } }
1. c# 프로그램 시작시 Win32.PreventScreenAndSleep(); 함수를 호출 하여 값을 셋팅합니다
화면이 안꺼지는지 테스트 해보시고..
2. 프로그램 Close 될시 Win32.AllowMonitorPowerdown(); 함수를 호출하여 셋팅한 값을 초기화합니다.
프로그램이 종료된 후에는 다시 화면이 꺼져야겠지요?
절전모드나 이런부분도 테스트를 해봐야겠네요~