/// </summary>\r
CTRL_CLOSE = 2,\r
}\r
+\r
+ [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]\r
+ static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags);\r
+\r
+ [FlagsAttribute]\r
+ public enum EXECUTION_STATE : uint\r
+ {\r
+ ES_SYSTEM_REQUIRED = 0x00000001,\r
+ ES_CONTINUOUS = 0x80000000,\r
+ ES_AWAYMODE_REQUIRED = 0x00000040\r
+ }\r
+\r
+ /// <summary>\r
+ /// Prevent the system from sleeping\r
+ /// </summary>\r
+ public void PreventSleep()\r
+ {\r
+ SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS | EXECUTION_STATE.ES_SYSTEM_REQUIRED | EXECUTION_STATE.ES_AWAYMODE_REQUIRED);\r
+ }\r
+\r
+ /// <summary>\r
+ /// Allow the system to sleep.\r
+ /// </summary>\r
+ public void AllowSleep()\r
+ {\r
+ SetThreadExecutionState(EXECUTION_STATE.ES_CONTINUOUS);\r
+ }\r
}\r
}\r