休止状態の有効/無効

[戻る]
あみおさ 2005/08/26(金) 22:48:14
Windows2000,XPで、休止状態の有効/無効を切り替える方法はないでしょうか?
宜しくお願いします。

まきじ 2005/08/27(土) 13:56:19
http://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200404_04040006.html
の事かな。

それとも、Windows の設定?(なら場違いです。)

あみおさ 2005/08/27(土) 22:28:44
コントロールパネルの電源オプション⇒休止状態タブの「休止状態を有効にする」のチ
ェックをプログラムでつけたりはずしたりしたいということです。

どうでしょうか?

とおりすがり 2005/08/28(日) 15:35:52
まきじさんの示したページは何が駄目なんですか?
それに対するコメントが何もなくて、どうでしょうか?と言われてても…

分かってなさそうなので補足しておくと、OS内部の様々な動作を扱うためのインタフェース
として、OS設計者はAPI(今回まきじさんが示したのだとSetSystemPowerStateかな?)を
用意します。

コントロールパネルからの操作というのは結局、それらのAPIを使って"人間"ユーザが
操作しやすくしているGUIインタフェースであって、プログラムから同じことをしたいので
あれば、通常、直接APIを叩くことを考えます。(その方が楽ですし)
よって、あなたがコントロールパネル操作でしているものと同じ操作を、上記APIで
できるかどうかを確認すべきです。

あみおさ 2005/08/28(日) 18:39:15
説明不足ですみません。
SetSystemPowerStateの第一パラメータfSuspend にFALSEを設定すると、
休止状態を有効にしている場合には休止状態になります。
無効にしている場合にはサスペンドになります。(fSuspend にTRUEを指定した場合と同
じ)

私が探しているのは休止状態を無効にしている場合でも休止状態にする方法です。(有
効/無効を切り替えられるとさらによし)

>コントロールパネルの電源オプション⇒休止状態タブの「休止状態を有効にする」のチ
ェックをプログラムでつけたりはずしたりしたいということです。

これをAPIでできないかということです。

宜しくお願いします。

あみおさ 2005/08/28(日) 18:50:30
正確に書くと、

・休止状態を有効/無効にするAPI
・休止状態が無効でも休止状態にするAPI

宜しくお願いします。

シャノン 2005/08/29(月) 01:10:33
レジストリの設定か何かになるのでしょうが…

> 私が探しているのは休止状態を無効にしている場合でも休止状態にする方法です。

これがユーザーフレンドリーな設計だとは思えません。

API でできるとしたら、

http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/dnanchor/html/anch_PowerMgmt.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/power/base/power_management_functions.asp

このあたりの関数のどれかだと思うのですが(URL 切れてると思うので、アドレスバー
にコピペしてください)。

IsPwrHibernateAllowed 関数が、「休止状態にできるかどうか」でしょうね、たぶん。
そうすると、SYSTEM_POWER_CAPABILITIES 構造体の SystemS4 メンバが TRUE だと、休
止状態できるっぽいですが、これを設定できる関数はあるのかな?

それとも、これは「ハードウェアがサポートしているか」みたいな低レベルな関数で、
ユーザが有効にしているかどうかは別かな?

あみおさ 2005/08/29(月) 19:44:04
そうですね。
シャノンさんの言うとおり

>IsPwrHibernateAllowed 関数が、「休止状態にできるかどうか」でしょうね、たぶん。
そうですね。確認しました。

>そうすると、SYSTEM_POWER_CAPABILITIES 構造体の SystemS4 メンバが TRUE だと、休
止状態できるっぽいですが、これを設定できる関数はあるのかな?

その関数がどうも見つからないんですよね。
やっぱり無理かもしれませんね。

古いスレッドには追加発言できません。