
Windows 7 以降の詳細な電源オプションにある「次の時間が経過後にハード ディスクの電源をオフにする」値の現在の設定をプログラムで読み取る方法を探しています。
私は
powercfg -change disk-timeout-ac xx
そして
powercfg -change disk-timeout-dc xx
この値を設定するコマンドがあります。ただし、現在設定されている値を読み取る同等のコマンドはないようです。また、これに対するレジストリ設定も見つかりませんでした。
答え1
Stack Overflow ではなく Super User で質問しているので、スクリプト可能な (レジストリ) 方法に焦点を当てます。
電源設定はすべて、レジストリの次のキーでアクセスできます。
HKLM\CurrentControlSet\Control\Power
サブキーにはUser\PowerSchemes
というエントリがありActivePowerScheme
、ご想像のとおり、現在の電源プランの ID が含まれています。電源管理に関連するすべての ID は GUID ですが、簡単に調べたところ、デフォルトの ID はすべてのマシンで同じであることがわかりました。 のサブキーはPowerSchemes
、電源スキーム381b4222-f694-41f0-9685-ff5bb260df2e
です。たとえば、 はバランス(推奨)。
電源設定キーのサブキーは、詳細な電源オプションに表示されるカテゴリです。これらはのサブキーで定義されます。PowerSettings
たとえばPower
、0012ee47-9041-4b5d-9b77-535fba8b1442
ハードディスク上の画像に見られるように、それらの個別の設定です6738e2c4-e8a5-4a42-b16a-e040e769756e
。ハードディスクの電源を切るこれらのキーにはDefaultPowerSchemeValues
サブキーがあり、そのサブキーには標準電源プランごとにサブキーがあります。これらのキーには、まさにあなたが想像するとおりのエントリAcSettingIndex
とDcSettingIndex
エントリがあります。使用される単位は設定によって異なりますが、この設定では秒を使用します。したがって、バランス電源プランのデフォルトのハード ドライブ電源オフ タイムアウトは、電源接続時は 1200 秒 (20 分)、バッテリ駆動時は 600 秒 (10 分) であることがわかります。
さて、キーに戻りましょうUser\PowerSchemes
。ユーザーが設定を変更したことがない可能性があるため、キーに AC と DC の両方の設定エントリ、設定サブキー、またはカテゴリ サブキーが含まれているという保証はありません。探している値がない場合は、 で現在の電源プランの既定値を確認する必要がありますPowerSettings\DefaultPowerSchemeValues
。
これらのキーと値は誰でも読み取ることができますが、管理者であっても書き込むことはできないことに注意してください。これは、電源設定がPower
として実行されるサービスを通じて管理されることになっているためですSYSTEM
。
コンパイルされた(C++)アプリケーションの開発者は、文書化された電源管理インターフェースを使用する必要があります。GetCurrentPowerPolicies
、取得user
の一部POWER_POLICY
構造を確認し、値を確認しSpindownTimeoutAc
ますSpindownTimeoutDc
。