2016-10-04 99 views
2

我有一臺運行Windows 7的筆記本電腦,但最終可能遷移到Windows 10.我想擁有自己的實用程序,可以檢測筆記本電腦是停靠還是未連接,然後更改電源檔案設置。我已經準備好在電池供電時按照標準電源窗口配置文件中的AC供電,但筆記本電腦在塢站上時的電源規劃方案與插入AC適配器時的電源規劃方案相同,不在塢站上。檢測筆記本電腦停靠或脫離Windows 7 +

到目前爲止,我有隻在系統托盤中的小圖標啓動工作程序,它將使當它停靠與停靠的我想要的變化,但方式我確定筆記本電腦停靠是通過尋找具體的硬編碼顯示器名稱每當發生WM_DEVICECHANGE時,我都通過EnumDisplayDevices調用連接到我的擴展塢(例如「Samsung U32D970Q」)。

主要問題是如果我更換顯示器,那麼程序將停止工作。我可能傳遞參數給啓動程序與監視器的名稱尋找,但我試圖找出是否有更好的方法。我是這樣傻嗎?

有一些Windows 7+功能,操作系統可以告訴筆記本電腦在擴展塢上嗎?

+0

如果您的擴展塢提供電源,[請考慮監視交流線路狀態。](http://stackoverflow.com/questions/7355331/check-if-computer-is-plugged-into-ac-power-in-batch - 文件) – user4581301

+0

@ user4581301:謝謝,但我還提供交流電源,當我在家裏從電源磚。問題是有一個Windows覆蓋的DC案例,但我有兩個單獨的AC案件,我試圖以不同的方式處理。不在碼頭時,一個來自碼頭的AC和一個來自電力磚的AC。 這看起來很愚蠢,但我希望大屏幕監視器能夠繼續工作,以便在我的工作臺上顯示屏幕保護程序的時間。當我在家時,我希望筆記本電腦的屏幕能夠進入睡眠狀態,所以當我在主PC上玩遊戲或其他東西時,我沒有看到它離開我的眼角。 – EJ42

回答

0

我面臨類似的問題,試圖確定我的筆記本電腦是否停靠。我的最終目標是將筆記本電腦電源從塢站連接到智能插頭,並使用Google Home Assistant使用語音命令打開/關閉筆記本電腦。在交流電源恢復時打開筆記本電腦,您需要在BIOS中啓用「Wake On AC」。問題是當交流電被切斷時,筆記本電腦仍然使用電池供電。我需要一種方式,一個後臺任務來關閉Windows時適當滿足這些條件:

1)電源筆記本電腦已經從交流變爲直流

2)筆記本電腦入塢至擴展塢

上述條件確保筆記本電腦在我剛斷開連接時不會關機。當筆記本電腦停靠時,我發現設備管理器中存在額外的設備。我的解決方案是在停靠/取消鎖定時枚舉所有設備,並將結果保存到兩個文本文件中,並使用windiff比較它們以查看差異。只需使用一個或兩個「額外設備」差異來確定筆記本電腦是否已對接。

對於我的DELL筆記本電腦+擴展塢設置,「HID-Complaint *」設備在停靠時會始終存在,並且在脫離時會丟失。我嘗試過使用CM_Is_Dock_Station_Present和GetCurrentHwProfile,但都從未正確報告碼頭狀態。

相關問題