OSDN Git Service

#29329 DTXManiaGR.exeのウインドウがアクティブな間は、PC/モニタが省電力モードに落ちないよう修正。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 21 Aug 2012 16:30:11 +0000 (16:30 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 21 Aug 2012 16:30:11 +0000 (16:30 +0000)
git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@444 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/全体/CDTXMania.cs
実行時フォルダ/DTXManiaGR.exe

index 62d4324..a0a9ed9 100644 (file)
@@ -18,8 +18,18 @@ namespace DTXMania
 {\r
        internal class CDTXMania : Game\r
        {\r
-               // プロパティ\r
+               [DllImport( "kernel32.dll" )]\r
+               extern static ExecutionState SetThreadExecutionState( ExecutionState esFlags );\r
+               [FlagsAttribute]\r
+               public enum ExecutionState : uint\r
+               {\r
+                       Null = 0,                                       // 関数が失敗した時の戻り値\r
+                       SystemRequired = 1,                     // スタンバイを抑止\r
+                       DisplayRequired = 2,            // 画面OFFを抑止\r
+                       Continuous = 0x80000000,        // 効果を永続させる。ほかオプションと併用する。\r
+               }\r
 \r
+               // プロパティ\r
                public static readonly string VERSION = "094(120610)";\r
                public static readonly string SLIMDXDLL = "c_net20x86_Jun2010";\r
                public static readonly string D3DXDLL = "d3dx9_43.dll";         // June 2010\r
@@ -424,6 +434,7 @@ namespace DTXMania
                }\r
                protected override void OnExiting( EventArgs e )\r
                {\r
+                       SetThreadExecutionState( ExecutionState.Continuous );           // スリープ抑止状態を解除\r
                        this.t終了処理();\r
                        base.OnExiting( e );\r
                }\r
@@ -449,6 +460,9 @@ namespace DTXMania
                        if( this.Device == null )\r
                                return;\r
 \r
+                       if ( this.bApplicationActive )  // DTXMania本体起動中の本体/モニタの省電力モード移行を抑止\r
+                               SetThreadExecutionState( ExecutionState.SystemRequired | ExecutionState.DisplayRequired );\r
+\r
                        this.Device.BeginScene();\r
                        this.Device.Clear( ClearFlags.ZBuffer | ClearFlags.Target, Color.Black, 1f, 0 );\r
 \r
index 8e456b0..0083719 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ