原因是 Windows 判斷「有沒有人在」的方式,只看鍵盤和滑鼠,看不到遊戲手把(Xbox/PS 手把、藍牙手把等 XInput 裝置)的輸入。這不是某個軟體的 bug。靠 Windows 系統 API 判斷閒置的工具,包括 PowerDoze 在內,都會遇到同樣的限制。
Windows 到底怎麼知道你「在不在」?
Windows 用 GetLastInputInfo 這個系統層級 API 來判斷。它只認鍵盤按鍵和滑鼠移動/點擊,沒有涵蓋手把的 XInput/DirectInput 訊號。這個 API 推出之後幾乎沒有改變。手把的輸入走的是另一套驅動程式(讓 Windows 能控制手把的程式),系統沒有把它接給「閒置偵測」使用。
這是 PowerDoze 特有的問題嗎?
不是。靠系統 API 判斷閒置的軟體,都有同樣的盲區。我們檢查過 PowerDoze 的程式碼,目前沒有偵測手把輸入的功能。省電、螢幕保護類的工具如果也靠這個 API 判斷閒置,就會遇到同樣的狀況。只有另外整合遊戲手把的 SDK(程式開發套件)去監聽輸入,才能避開。
有 DIY 解法嗎?
有兩個方向:拉長閒置門檻(閒置多久才算你不在),或用防閒置的小工具模擬鍵盤滑鼠訊號。拉長門檻最直接(例如把「螢幕變暗」門檻從 5 分鐘拉到 60 分鐘),代價是離開電腦時反應會變慢。另外安裝防閒置的模擬工具,則要多裝一套軟體,用起來比較複雜,也可能有相容性問題。
白名單能不能解決?
可以。把正在玩的遊戲加進 PowerDoze 的白名單(App 裡的「白名單管理」),該遊戲在前景(正在使用的視窗)執行時,離開模式就不會調暗、模糊畫面或鎖定,等於直接繞過手把偵測不到輸入的問題。這個做法不用猜閒置門檻該設多少,其他情境的省電效果也不受影響。要注意一點:離開模式裡的「離開時電源模式」不受白名單影響,閒置時間到了照樣會切換。
全螢幕玩遊戲,一般會自動放行
離開模式在決定要不要調暗、模糊畫面或鎖定之前,會先看目前在前景的視窗有沒有占滿整個螢幕(大約 95% 以上),占滿就先不動作。它只比視窗大小,所以獨佔全螢幕、無邊框全螢幕一般都算。用獨佔全螢幕或無邊框全螢幕玩,通常不用另外設定;視窗化玩、視窗沒有占滿螢幕時,才需要把遊戲加進白名單。另外,它只看前景視窗,大約每 3 秒檢查一次。
輸入方式對照表
| 輸入裝置 | 系統會判定為「有動作」嗎 | 建議做法 |
|---|---|---|
| 鍵盤 | 會 | 不需處理 |
| 滑鼠 | 會 | 不需處理 |
| 觸控螢幕/觸控板 | 會 | 不需處理 |
| 遊戲手把(XInput/藍牙手把) | 不會 | 全螢幕玩通常免處理;視窗化玩就加入白名單,或拉長閒置門檻 |
| 方向盤/搖桿等特殊控制器 | 多數不會 | 全螢幕玩通常免處理;視窗化玩就加入白名單,或拉長閒置門檻 |
常見問題
為什麼玩賽車遊戲只用手把,螢幕會自動變暗?
因為 Windows 的閒置偵測只認鍵盤滑鼠輸入,手把的操作在系統層級看不到,久了就會被判定為「沒人在用」。
PowerDoze 有計畫支援偵測手把輸入嗎?
目前 PowerDoze 沒有偵測手把的功能(我們檢查過程式碼確認),需要額外整合手把 SDK 才能做到。這是目前的現況,不是承諾一定會做。
除了加白名單,還有別的辦法嗎?
可以拉長閒置門檻,但代價是離開電腦時反應變慢。相對之下,針對遊戲加白名單更精準,不影響其他情境的省電效果。
這個問題只有 PowerDoze 有嗎?
不是。只要是靠 Windows 系統 API 做閒置判斷的軟體都有一樣的盲區,這是平台限制,不是特定廠商的技術缺陷。
目前的限制
PowerDoze 目前偵測不到手把輸入。全螢幕或無邊框全螢幕玩時,離開模式會先暫停;視窗化玩的話,建議把遊戲加入白名單。離開時自動調暗/鎖定是 Pro 功能,白名單本身免費版也能用。免費版沒有離開模式,PowerDoze 不會讓你的螢幕變暗或鎖定。這篇的做法適用於有開啟離開模式的 Pro 使用者。
如果你不想玩到一半螢幕就被關掉、還要手動叫醒:全螢幕玩時 PowerDoze 會自動先暫停,視窗化玩的遊戲加進白名單,在前景執行時就不會被誤判為離開。