想使用Windows的計劃任務來實現:當計算機空閒時,自動關機,以避免資源浪費。
方案一
測試了多個軟體,如Shutter,WinOFF Setup,它們功能豐富,但僅能在使用者登入時執行。而Windows 11會在一段時間後自動登出使用者,儘管嘗試多種設定方法,問題仍未解決。
方案二
編寫了AI程式來檢測使用者空閒時間,功能正常,但作為服務執行時出現問題:即便使用者正在進行操作,系統也會執行關機操作。根本原因在於服務程式的會話無法感知其他已登入使用者的活動狀態。
方案三
隨後考慮使用Windows計劃任務呼叫shutdown.exe
,此方法在使用者未登入時也能執行。
配置詳情:
-
常規:
- 不管使用者是否登入都執行
- 以最高許可權執行
-
觸發器:
- 設定為每5分鐘重複一次
-
操作:
- 執行命令:
C:\Windows\System32\shutdown.exe
- 命令引數:
/s /t 1800
(表示1800秒後關機,即30分鐘)
- 執行命令:
-
條件設定:
- 僅當計算機空閒時間超過下列值後才啟動任務:1小時
- 等待空閒時間:1小時
儘管能成功執行關機操作,但並非按照預期的2小時後執行。調整相關時間後,依然無法達到預期效果。
微軟官方解釋
- Windows官方文件關於任務空閒條件的說明
官方文件中的說明難以理解,大致意思是:若任務設定為計算機空閒30分鐘後啟動,並設定等待計算機空閒10分鐘後執行,那麼只有當任務觸發前計算機已空閒25分鐘,任務才會在5分鐘內啟動。若計算機在觸發後5分鐘才進入空閒狀態,則任務不會啟動。
在國外網站找到了這個資料
- Super User論壇上關於“等待空閒”的解釋
然而,經過測試,實際效果仍不符合預期。進一步查閱資料時,注意到了這個”備註”,就是都棄用了,上面還保留了那麼多解釋。雖然看到了前面有個小標題“已棄用空閒等待和空閒持續時間”,但沒往那兒想。
計劃任務的介面上有這個選項,但實際功能已棄用!!!