首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测USB电源状态

检测USB电源状态
EN

Stack Overflow用户
提问于 2011-05-04 22:17:21
回答 2查看 2.6K关注 0票数 7

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

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

EN

回答 2

Stack Overflow用户

发布于 2011-05-04 22:36:11

  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

票数 1
EN

Stack Overflow用户

发布于 2011-09-08 17:14:22

正如前面的帖子所提到的,RegisterPowerSettingNotification就是您想要的。为了清楚起见,您可以从其他类型的.NET应用程序(控制台等)中引用Winforms (System.Windows.Forms.dll)。您可以通过子类化Winform ( Forms类)并覆盖它的WndProc来访问窗口句柄(以便接收消息)。

MSDN有一个可以做到这一点的very good article,以及示例代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5884820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档