C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

実行中にスクリーンセイバーを発生させない手段


(過去ログ 7 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■7236 / inTopicNo.1)  実行中にスクリーンセイバーを発生させない手段
  
□投稿者/ syunim 二等兵(1回)-(2006/10/05(Thu) 09:18:27)

分類:[C#] 


分類:[C#] 

いつもお世話になってます。

お伺いさせて頂きたいのですが、
プログラム実行中にスクリーンセイバーを発生させないようにする
処理はどう組めば宜しいのでしょうか?

ちなみにサスペンドを発生させない方法として以下の処理を行っています。
protected override void WndProc(ref Message m)
{
 if (m.Msg == WM_POWERBROADCAST && m.WParam.ToInt32() == PBT_APMQUERYSUSPEND)
 {
  m.Result = new IntPtr(BROADCAST_QUERY_DENY);
  return;
 }
 base.WndProc(ref m);
}


0
引用返信 編集キー/
■7267 / inTopicNo.2)  Re[1]: 実行中にスクリーンセイバーを発生させない手段
□投稿者/ ダッチ 一等兵(39回)-(2006/10/05(Thu) 22:07:57)

分類:[C#] 

No7236に返信(syunimさんの記事)
> いつもお世話になってます。
>
> お伺いさせて頂きたいのですが、
> プログラム実行中にスクリーンセイバーを発生させないようにする
> 処理はどう組めば宜しいのでしょうか?
>
> ちなみにサスペンドを発生させない方法として以下の処理を行っています。
> protected override void WndProc(ref Message m)
> {
>  if (m.Msg == WM_POWERBROADCAST && m.WParam.ToInt32() == PBT_APMQUERYSUSPEND)
>  {
>   m.Result = new IntPtr(BROADCAST_QUERY_DENY);
>   return;
>  }
>  base.WndProc(ref m);
> }
>

いろいろ探してみましたが
API を使用する方法しか見つかりませんでした。

SystemParametersInfo を使用して
uiAction に SPI_SETSCREENSAVEACTIVE
uiParam に 0(False)
を指定してやるとスクリーンセーバーが無効になるようです。
しかしプログラムが終了しても無効のままになると思いますので、
終了する際は uiParam に 1(True) を設定して
スクリーンセーバーを有効に戻してやらないといけません。

.NET Framework 2.0 になっても
まだまだこの辺はサポートされていないのですかね。
もどかしい感じがしました。

0
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -