OSDN Git Service

WinGui:
[handbrake-jp/handbrake-jp-git.git] / win / C# / HandBrake.ApplicationServices / Functions / Win32.cs
index a3caf38..72e4d8d 100644 (file)
@@ -139,5 +139,32 @@ namespace HandBrake.ApplicationServices.Functions
             /// </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