All posts English version →

用手把玩遊戲,電腦以為你不在?

元兇是 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 的排除清單,開著就不會被誤判離開。

免費下載 PowerDoze →

Nisonxi

我是 Nisonxi,PowerDoze 的開發者。我會做這個工具,是因為自己的 Windows 桌機整天閒置卻幾乎滿功率運轉,市面上找不到能自動判斷情況並切換的工具。這個部落格是這段過程的筆記。

關於作者與 PowerDoze →