喫茶XRAYトップページ

[▲前のスレッド]

[12492] スクリーンセーバ停止 ? 起動抑止 ?返信 削除
2018/12/14 (金) 11:26:01 Mr.XRAY
某掲示板で質問を見たのでサンプル書いてみました.
こういう機能というか仕様というのは,どういう場面で必要なんでしょうね.
私なんか SPI_SETSCREENSAVEACTIVE でスクリーンセーバ起動の無効,有効を
設定してしまえばいいんじゃない ?
と思うんですが.

[ 05_起動中のスクリーンセーバーの停止 ]
http://mrxray.on.coocan.jp/Delphi/plSamples/S07_SystemParametersInfo_ScreemSaver.htm#05

[ 06_スクリーンセーバーの起動抑止 SetThreadExecutionState 関数 ]
http://mrxray.on.coocan.jp/Delphi/plSamples/S07_SystemParametersInfo_ScreemSaver.htm#06


[12493] Re:スクリーンセーバ停止 ? 起動抑止 ?返信 削除
2018/12/14 (金) 13:29:18 SO
▼ Mr.XRAYさん
> 某掲示板で質問を見たのでサンプル書いてみました.
> こういう機能というか仕様というのは,どういう場面で必要なんでしょうね.
> 私なんか SPI_SETSCREENSAVEACTIVE でスクリーンセーバ起動の無効,有効を
> 設定してしまえばいいんじゃない ?
> と思うんですが.


再開時にログオン画面に戻るが有効な場合とか、どうするんでしょうね?
そういう運用しないよ!ってなら、そもそもスクリーンセーバーOFFでいいような気もするし。。。?


[12494] Re2:スクリーンセーバ停止 ? 起動抑止 ?返信 削除
2018/12/14 (金) 13:31:23 SO
> 再開時にログオン画面に戻るが有効な場合とか、どうするんでしょうね?

[ 06_スクリーンセーバーの起動抑止 SetThreadExecutionState 関数 ]

に書かれてた(^^;A

[12495] Re2:スクリーンセーバ停止 ? 起動抑止 ?返信 削除
2018/12/14 (金) 14:32:42 Mr.XRAY
▼ SOさん

> そういう運用しないよ!ってなら、そもそもスクリーンセーバーOFFでいいような気もするし。。。?

わたしもそう思うんですが,
ダメですか ?

某掲示板にそうレスしようと思ったら
「質問の意味を取り違えている」
という方がレスしていたので...(^^;

質問の趣旨は「起動中のスクリーンセーバ云々」ですからね.


[12496] Re3:スクリーンセーバ停止 ? 起動抑止 ?返信 削除
2018/12/14 (金) 14:52:05 SO
▼ Mr.XRAYさん

想像シチュエーションですが、
普段は、起動しっぱなしのPCで、
なにかアラートが発生した場合、
強制的にスクリーンセーバーを解除し、
画面を注視して欲しいのではと思いました。

想像が合っていたとしても、
気づかなければ、同じですが。。。

[12498] サンプルのページを移動返信 削除
2018/12/17 (月) 06:49:17 Mr.XRAY
> 想像が合っていたとしても、
> 気づかなければ、同じですが。。。


なので,サンプルの掲載ページを移動しました.
スクリーンセーバの起動の可否を設定できるのに,停止のサンプルは不要かと.
でも折角テストしたので別のページに書いておくことにしました.

[ 起動中のスクリーンセーバーの停止 ]
http://mrxray.on.coocan.jp/Delphi/Others/StopScreenSaver.htm


[12499] スクリーンセーバ無効と停止と抑止の違い返信 削除
2018/12/18 (火) 08:34:59 Mr.XRAY
> スクリーンセーバの起動の可否を設定できるのに,停止のサンプルは不要かと.

何が違うのかと考えながらモニタを眺めていたら,モニタが真っ暗に..
あっ,と気づきました.

スクリーンセーバが無効だと,ディスプレイの電源 OFF 時間が経過するときの機能が働きます.
スクリーンセーバの停止と抑止をしていれば,モニタに対して何らかの操作が
行われ,それらのタイムアウト時間がリセットされるので
モニタの電源 OFF にはなりません.

そういうことだったんですね.
後で記事を修正しておきます.
まだまだ勉強不足でございます,


[12500] Re:スクリーンセーバ無効と停止と抑止の違い返信 削除
2018/12/19 (水) 08:04:34 SO
▼ Mr.XRAYさん

そうですね。
けれど、使わない機能はなかなか気付きませんね(^-^;A

> スクリーンセーバが無効だと,ディスプレイの電源 OFF 時間が経過するときの機能が働きます.
> スクリーンセーバの停止と抑止をしていれば,モニタに対して何らかの操作が
> 行われ,それらのタイムアウト時間がリセットされるので
> モニタの電源 OFF にはなりません.


電源プランで「モニタの電源を切る」をOFFにすればOK?


[12501] Re2:スクリーンセーバ無効と停止と抑止の違い返信 削除
2018/12/19 (水) 10:49:12 Mr.XRAY
▼ SOさん

> 電源プランで「モニタの電源を切る」をOFFにすればOK?

御意 !!
んでもってサンプルコードです.
動作確認は Windows 7 U64(SP1) + Delphi XE5(UP2) Pro VCL-32 です.

//=============================================================================
//  モニタ(ディスプレイ)の電源を切らない設定
//  タイムアウト時間を 0 にすれば無効となる
//  電源オプションの設定ダイアログでは表示が [なし] になる
//
//  uses にShellAPI が必要
//=============================================================================
procedure TForm1.Button3Click(Sender: TObject);
var
  LCmdExe : string;
  LOption : string;
begin
  LCmdExe := 'powercfg.exe';
  LOption := '/CHANGE monitor-timeout-ac 0';
  ShellExecute(Handle, '', PChar(LCmdExe), PChar(LOption), nil, SW_HIDE);
end;


[12497] Re:スクリーンセーバ停止 ? 起動抑止 ?返信 削除
2018/12/16 (日) 14:00:09 Mr.XRAY
> [ 05_起動中のスクリーンセーバーの停止 ]
> http://mrxray.on.coocan.jp/Delphi/plSamples/S07_SystemParametersInfo_ScreemSaver.htm#05


Windows 10 では,起動しているスクリーセーバをコードでは停止できないので,
そのことを追加しました.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82