
我正在尋找一種方法來以編程方式讀取“之後關閉硬碟”值的當前設置,該值位於 Windows 7 及更高版本的高級電源選項中。
我知道
powercfg -change disk-timeout-ac xx
和
powercfg -change disk-timeout-dc xx
命令來設定該值。但是,似乎沒有等效的命令來讀取目前設定的值。另外,我找不到這方面的註冊表設定。
答案1
由於您詢問的是超級用戶而不是堆疊溢出,因此我將重點介紹執行此操作的可編寫腳本(註冊表)方式。
電源設定均可在登錄中的此鍵下存取:
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
值。