元兇是 Windows 判斷「有沒有人在」的機制只看鍵盤和滑鼠,完全看不到遊戲手把(Xbox/PS 手把、藍牙手把等 XInput 裝置)的輸入。這不是特定軟體的 bug,是整個 Windows 生態圈的技術現實:包括 PowerDoze 在內,靠系統 API 做閒置偵測的工具,天生對手把「瞎眼」。
Windows 到底怎麼知道你「在不在」?
靠 GetLastInputInfo 這支系統層級 API,只認鍵盤鍵值和滑鼠移動/點擊,沒有涵蓋手把的 XInput/DirectInput 訊號。這支 API 從 Windows 存在至今幾乎沒變過,手把輸入走的是完全不同的驅動堆疊,系統層面沒有把兩者橋接給「閒置偵測」使用。
這是 PowerDoze 特有的問題嗎?
不是,這是所有依賴系統 API 做閒置判斷的軟體共同的盲區。我們查過自己的引擎程式碼,目前也沒有偵測手把輸入的邏輯。市面上多數省電、螢幕保護類工具都是同樣狀況,除非特別整合遊戲手把 SDK 去監聽輸入。
有 DIY 解法嗎?
有兩個方向——拉長閒置閾值,或用防閒置模擬鍵鼠訊號的小工具。拉長閾值最直接(例如把「螢幕變暗」門檻從 5 分鐘拉到 60 分鐘),代價是離開電腦時反應會變慢;另外安裝防閒置模擬器則要多裝一套軟體,增加複雜度與潛在的相容性風險。
排除清單能不能解決?
可以。把正在玩的遊戲加進 PowerDoze 的排除清單,該遊戲在前景執行時就不觸發變暗或鎖定,等於直接繞過手把偵測不到輸入的問題。這是目前最乾淨的做法:不用猜測閒置閾值該設多少,遊戲開著就整個跳過判斷,其他情境的省電效果也不受影響。
全螢幕遊戲會不會自動被放行?
目前不會。PowerDoze 的全螢幕偵測是用在防止睡眠,跟離開偵測(變暗/鎖定)是兩套獨立邏輯,兩者尚未打通。也就是說,就算你全螢幕跑遊戲、只用手把操作,離開偵測還是只看鍵鼠——白名單仍是必要手段,不是可有可無的補強。
輸入方式對照表
| 輸入裝置 | 系統會判定為「有動作」嗎 | 建議做法 |
|---|---|---|
| 鍵盤 | 會 | 不需處理 |
| 滑鼠 | 會 | 不需處理 |
| 觸控螢幕/觸控板 | 會 | 不需處理 |
| 遊戲手把(XInput/藍牙手把) | 不會 | 加入排除清單,或拉長閒置閾值 |
| 方向盤/搖桿等特殊控制器 | 多數不會 | 同上 |
常見問題
為什麼用手把玩賽車遊戲,螢幕會自動變暗?
因為 Windows 的閒置偵測只認鍵盤滑鼠輸入,手把的操作在系統層級看不到,久了就會被判定為「沒人在用」。
PowerDoze 有計畫支援偵測手把輸入嗎?
目前引擎沒有這段邏輯(已檢查原始碼確認),需要額外整合手把 SDK 才能做到。這是誠實的現況說明,不是承諾一定會做。
除了加白名單,還有別的辦法嗎?
可以拉長閒置閾值,但代價是離開電腦時反應變慢。相對之下,針對遊戲加白名單更精準,不影響其他情境的省電效果。
這個問題只有 PowerDoze 有嗎?
不是。只要是靠 Windows 系統 API 做閒置判斷的軟體都有一樣的盲區,這是平台限制,不是特定廠商的技術缺陷。
誠實邊界
PowerDoze 目前偵測不到手把輸入,也沒有把全螢幕狀態接到離開偵測邏輯裡。玩手把遊戲的使用者,建議把遊戲加入排除清單,這是目前唯一可靠的解法。(另外講清楚:離開時自動變暗/鎖定,以及這裡說的排除清單,都是 Pro 功能——免費版沒有離開偵測,本來就不會遇到這個情況;這篇的解法是給有開離開偵測的 Pro 使用者。)
不想每次玩到一半螢幕就被關掉、還要手動叫醒?把常玩的遊戲加進 PowerDoze 的排除清單,開著就不會被誤判離開。