Q
檢測電源狀態變化
3
A
回答
4
的SystemEvents.PowerModeChanged
事件應該做你想要
您可能還需要檢查出SystemInformation.PowerStatus
屬性是什麼。
3
如果你需要睡眠的事件,這工作得更好:
private ManagementEventWatcher managementEventWatcher;
private readonly Dictionary<string, string> powerValues = new Dictionary<string, string>
{
{"4", "Entering Suspend"},
{"7", "Resume from Suspend"},
{"10", "Power Status Change"},
{"11", "OEM Event"},
{"18", "Resume Automatic"}
};
public void InitPowerEvents()
{
var q = new WqlEventQuery();
var scope = new ManagementScope("root\\CIMV2");
q.EventClassName = "Win32_PowerManagementEvent";
managementEventWatcher = new ManagementEventWatcher(scope, q);
managementEventWatcher.EventArrived += PowerEventArrive;
managementEventWatcher.Start();
}
private void PowerEventArrive(object sender, EventArrivedEventArgs e)
{
foreach (PropertyData pd in e.NewEvent.Properties)
{
if (pd == null || pd.Value == null) continue;
var name = powerValues.ContainsKey(pd.Value.ToString())
? powerValues[pd.Value.ToString()]
: pd.Value.ToString();
Console.WriteLine("PowerEvent:"+name);
}
}
public void Stop()
{
managementEventWatcher.Stop();
}
+0
當我關閉顯示器時,這是否正常工作? – alap 2014-10-14 08:35:12
相關問題
- 1. 檢測USB電源狀態
- 2. 如何檢測電源連接狀態?
- 3. 檢測Windows 10系統電源狀態
- 4. JQuery:檢測css狀態變化
- 5. 動態檢測顯示器的電源狀態
- 6. 狀態變化監測
- 7. BatteryManager BroadcastReciever未檢測到充電狀態
- 8. 檢測Android上的麥克風狀態變化來檢測錄音
- 9. PHP循環狀態變化監測
- 10. 如何檢測充電記錄的電池電量和狀態?
- 11. Symbian電源狀態通知
- 12. 存儲數組時未檢測到狀態變化
- 13. 如何檢測窗體中的變化並設置新狀態?
- 14. CentOS服務器:如何檢測網絡狀態變化
- 15. 如何檢測「狀態」的變化並顯示一些內容?
- 16. 如何檢測複選框狀態的變化
- 17. 如何檢測變化狀態@property目標C
- 18. 檢測CControlBar的對接狀態何時發生變化
- 19. 當電腦處於睡眠狀態時電源狀態發生變化時,能否收到通知?
- 20. OSX可可輸入源檢測變化
- 21. 檢測JPanel大小變化的來源
- 22. JavaScript源代碼的變化檢測
- 23. Android的HDMI-CEC檢查電視電源狀態
- 24. 變化狀態JSX
- 25. vgaswitcheroo狀態變化
- 26. 檢測變化
- 27. 檢查電池狀態6.5
- 28. Arduino - 檢測外部電源
- 29. 模板動態變化時檢測
- 30. 離子模態變化檢測
我看着PowerModeChanged被以爲是有什麼供電的PC做。我怎麼錯了...... – Steven 2010-10-16 12:44:02
不適用於windows 10 – Choletski 2016-08-04 13:56:57