检测USB电源状态

Joe*_*l B 6 c# windows usb standby

Windows可以选择关闭某些外围设备(如USB端口)以节省电量(可以通过设备管理器启用/禁用此行为).断电发生在各种条件下,例如当笔记本电脑的盖子关闭时.这对我来说是一个问题,因为我有一个GUI,它连接到USB端口的硬件,每次关闭笔记本电脑盖时都会切断通信.有没有办法以编程方式检测此事件发生之前的断电(待机?)事件并更优雅地关闭我的USB设备?有没有办法以编程方式配置每个系统的USB端口以禁用此行为?

现在我在看SystemEvents.PowerModeChanged,这是检测到这个的正确事件吗?

Gav*_*vin 1

听起来像你想要的

  1. WM_POWERBROADCAST (http://msdn.microsoft.com/en-us/library/aa373247(v=vs.85).aspx)
  2. RegisterPowerSettingNotification (http://msdn.microsoft.com/en-us/library/aa373196.aspx)

您首先需要调用 RegisterPowerSettingNotification,然后您的应用程序将收到 WM_POWERBROADCAST 消息。

此页面有使用这些窗口消息的电源管理类的 c# 实现。http://www.koders.com/csharp/fid00BAA34B0CAA3E320F9F5A44610A015973BF28ED.aspx?s=nativemethods#L175