Windows 喚醒計時器在 Modern Standby 中無法運作

如果應用程式在電腦開啟時能執行排程工作,卻在 Modern Standby 期間錯過工作,請先檢查睡眠狀態及該應用程式的喚醒計時器。

Modern Wakeup 是適用於現有可喚醒計時器的 Windows 驅動程式及設定工具。它以核心計時器對應允許的應用程式計時器,並在觸發時要求互動式恢復。它不會建立應用程式的工作排程,也不會修改應用程式。

螢幕截圖顯示英文介面;名稱可能因 Windows 和應用程式的語言而異。

1. 檢查電腦是否使用 Modern Standby

以管理員身分開啟終端機或命令提示字元,然後執行:

powercfg /a

在可用狀態中尋找 Standby (S0 Low Power Idle);名稱可能已翻譯。Windows 亦可能顯示網絡是否保持連線。Modern Wakeup 處理的是 S0 Modern Standby 期間的應用程式計時器。

若電腦使用 S3 睡眠,或工作在休眠或關機後未能執行,本指南不能證明 Modern Wakeup 會有幫助。請檢查應用程式的排程選項及該狀態的電源設定。

2. 檢查應用程式是否要求喚醒

如應用程式設有喚醒電腦選項,請啟用並安排稍後的工作。在應用程式或其服務運作期間,以管理員身分執行:

powercfg /waketimers

指令會列出 Windows 回報的有效喚醒計時器。尋找屬於該應用程式或服務的計時器。有些應用程式只在工作開始前不久建立計時器;清單為空值得調查,但不能單憑此判定故障。

Modern Wakeup 需要現有且允許喚醒的計時器。若應用程式未要求計時器,它無法代為安排工作。

傳統喚醒計時器與在 Modern Standby 期間執行桌面應用程式的權限並不相同。存在計時器不保證工作會執行。Modern Wakeup 要求互動式恢復,讓應用程式重新活躍。

Microsoft 在 powercfg 參考文件說明指令,在 SetWaitableTimerEx 參考文件說明 API。

3. 安裝並測試 Modern Wakeup

  1. 下載 Windows x64 版 Modern Wakeup、執行程式並批准管理員提示。
  2. 選擇安裝驅動程式。7 天試用期會在首次安裝驅動程式時開始。
  3. 允許的喚醒計時器中加入擁有計時器的應用程式或服務之 .exe 名稱,每行一個名稱或萬用字元模式,然後選擇儲存允許清單。計時器要求者的名稱可能與應用程式啟動程式不同。
  4. 開啟疑難排解。內建測試需要允許目前使用的 Modern Wakeup 執行檔,例如 ModernWakeup-1.0.0-win-x64.exe。預設規則 modernwakeup*.exe 已涵蓋該檔案。
  5. 選擇幾分鐘後的日期和時間,再選擇設定喚醒。請保持應用程式開啟,因為測試計時器由它擁有。
  6. 選擇重新整理狀態,檢查已對應計時器的要求者及到期時間。只會對應最早的允許計時器,因此另一個應用程式可能先出現。
  7. 透過 Windows 電源選單讓電腦進入睡眠。喚醒後檢查診斷訊息,以及測試計時器有否觸發。請留意下方的時間限制。

內建測試成功後,請再測試應用程式本身的排程工作。確認工作確實完成;單憑螢幕亮起並不足夠。

測試後可關閉甚至刪除設定應用程式 ModernWakeup-1.0.0-win-x64.exe。只須讓 Modern Wakeup 驅動程式在裝置管理員保持已安裝及運作。

電腦仍未喚醒時

相容性及限制

哪些應用程式可使用?

透過 SetWaitableTimerSetWaitableTimerEx 等 Windows API 建立現有可喚醒計時器的應用程式。相容性取決於排程方式及電腦電源行為。購買前請先試用。

下載適用於甚麼平台?

已在使用 S0 Modern Standby 的 Windows 10 及 11 x64 電腦測試。目前只提供 x64 驅動程式,不包括 ARM64 或 32 位元版本。安裝及設定需要管理員權限。

會停用 Modern Standby 或恢復 S3 嗎?

不會。它使用電腦現有的睡眠設定,不會改變韌體支援的狀態,也不會啟用 S3。

螢幕會亮起嗎?

驅動程式要求互動式恢復,包括螢幕活動和使用者在場。螢幕可能亮起,之後 Windows 可按一般電源政策關閉。

電腦會準時喚醒嗎?

時間取決於 Windows、韌體、硬件及 Modern Standby。延遲一至兩分鐘屬正常,通常較短。請在自己的電腦測試。

電池及外接電源下表現一樣嗎?

不要假設一樣。請在計劃使用的電源條件下測試,因為 Windows 電源政策會影響喚醒。

試用期結束後會怎樣?

試用期由首次安裝起計 7 天。沒有有效授權時,在到期時或之後應觸發的計時器不會被對應。應用程式會顯示狀態並接受授權金鑰。

移除驅動程式

開啟 Modern Wakeup 並選擇解除安裝驅動程式…。應用程式會停止驅動程式、從 Windows 驅動程式存放區移除套件,並嘗試刪除現用設定資料夾。若要保留允許清單,請先複製 C:\ProgramData\ModernWakeup\ModernWakeup-Allowed-Timers.txt

亦可在裝置管理員 > 系統裝置中,於 Modern Wakeup 按滑鼠右鍵並選擇解除安裝裝置

英文版 Windows 裝置管理員中的 Modern Wakeup

或使用命令提示字元:

  1. 執行 pnputil /enum-drivers,找出原始名稱為 modernwakeup.driver.inf 的項目,並記下其發佈名稱,例如 oem42.inf
  2. sc.exe stop ModernWakeup
  3. pnputil /delete-driver oem42.inf /uninstall

返回下載、價格及產品詳情.