在 Windows 中以程式設計方式讀取「之後關閉硬碟」值

在 Windows 中以程式設計方式讀取「之後關閉硬碟」值

我正在尋找一種方法來以編程方式讀取“之後關閉硬碟”值的當前設置,該值位於 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結構,並查看SpindownTimeoutAcSpindownTimeoutDc值。

相關內容