プログラムの実行中に電源をスリープさせない方法は?


hiroshi  2013-07-08 16:55:03  No: 143478

プログラムの実行中に電源がスリープするのを防ぐ方法をネットで紹介されている通りやってみたのですがうまくいきません。
#Region "定数"
  Public Const WM_POWERBROADCAST = &H218
  Public Const PBT_APMQUERYSUSPEND = &H0
  Public Const BROADCAST_QUERY_DENY = &H424D5144
#End Region

#Region "オーバーライドメソッド"
  Protected Overrides Sub WndProc( ByRef m As System.Windows.Forms.Message)
     If m.Msg = WM_POWERBROADCAST  Then
         If  m.WParam.ToInt32 = PBT_APMQUERYSUSPEND Then
             m.Result = New IntPtr(BROADCAST_QUERY_DENY)
             Return
         End If
     End If
     MyBase.WndProc(m)
 End Sub
#End Region

調べてみると、電源がスリープする時、最初の条件m.Msg = WM_POWERBROADCAST  (=536)にはなっている事が分かりましたが、
二つ目の条件  m.WParam.ToInt32  が  PBT_APMQUERYSUSPEND (=0) ではなく、18になっているようです
パソコンはWindows7です。紹介の説明にもVistaの場合は上記方法ではだめと言うコメントがあるので、
Windows7でも別のやり方をやらなければならないのでしょうか、教えて下さい。


YuO  2013-07-08 19:35:26  No: 143479

実際に試してはいませんが……。

ヘモトホのラペミマラナメツメマチトテチモヤの項目を読むと,
ミツヤ゜チミヘムユナメルモユモミナホトの代わりにモヤナモを使え,と書いてあります。

メゥ
ヘモトホコヲサラペミマラナメツメマチトテチモヤヲサヲサィラゥ
コッッョョッュッッッッウキウイエキョ
ヘモトホコヲサモヤナモヲサヲサィラゥ
コッッョョッュッッッッウキウイークョ

ディスプレイの表示が必要でなければ,
・定期的にナモ゜モルモヤナペメナムユノメナトを引数にモヤナモを呼び出す
・一度ナモ゜モルモヤナペメナムユノメナトヲサマヲサナモ゜テマホヤノホユマユモを引数にモヤナモを呼び出し,不要になった時点でナモ゜テマホヤノホユマユモを引数に呼び出す
という方法でできるように読めます。
また,ディスプレイが必要であれば,ナモ゜モルモヤナペメナムユノメナトだけでなく,ナモ゜トノモミフチル゜メナムユノメナトも同時に指定することになります。
」ヲサモヤナモはラヲサリミまたはラヲサモヲサイーーウ以降で利用できる方法になります。

なお,ユーザー操作によるスリープを妨げることは出来ません。
時間経過によるスリープを妨げることができる,というものです。
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアウッーキッーケィ火ゥ ーアコイイコエカ シ  スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 「ィ「、  ン

ルマさん  回答ありがとうございます              
残念ながら、ラプログラミングが分りません              
最初の質問に書いたコードも、サンプルがあったので意味があまり分からないままやってみたのですが、              
「定期的にナモ゜モルモヤナペメナムユノメナトを引数にモヤナモを呼び出す」  方法を具体的に説明して頂けませんか?


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加