如何在Windows服务中检测从睡眠模式唤醒?

2024-03-15

再会!我编写了一个 Windows 服务,它检测 USB 闪存驱动器连接并对连接的驱动器执行某些操作。现在经过测试,我需要在从睡眠模式唤醒后重新处理设备。当服务作为 Windows 程序工作时,我解决了这个问题。为了解决我另外处理DBT_DEVNODES_CHANGED,但是服务不会收到此消息,它只收到DBT_DEVICE_ARRIVAL and DBT_DEVICEREMOVECOMPLETE。我还尝试检查服务处理的所有消息,除了SERVICE_CONTROL_DEVICEEVENT and SERVICE_CONTROL_STOP当系统进入睡眠状态时我没有收到任何消息。

如何确定系统何时唤醒?


正常的应用程序会收到一个WM_POWERBROADCAST:PBT_APMRESUMEAUTOMATIC窗口消息,但如果服务没有窗口,则不会收到此消息。但是,服务可以接收SERVICE_CONTROL_POWEREVENT in its HandlerEx https://msdn.microsoft.com/en-us/library/windows/desktop/ms683241(v=vs.85).aspx回调函数,参数相同WM_POWERBROADCAST

通知系统电源事件的服务。 dwEventType 参数包含附加信息。如果 dwEventType 为 PBT_POWERSETTINGCHANGE,则 lpEventData 参数还包含附加信息。

在 Windows 8 及更高版本上,您还可以使用PowerRegisterSuspendResumeNotification() https://msdn.microsoft.com/en-us/library/windows/desktop/hh769080(v=vs.85).aspx功能:

注册以在系统挂起或恢复时接收通知。

服务相当于WM_DEVICECHANGE is SERVICE_CONTROL_DEVICEEVENT:

通知设备事件的服务。 (该服务必须已注册才能使用注册设备通知 https://msdn.microsoft.com/en-us/library/windows/desktop/aa363431(v=vs.85).aspx函数。) dwEventType 和 lpEventData 参数包含附加信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Windows服务中检测从睡眠模式唤醒? 的相关文章

  • 什么定义了类型的大小?

    ISO C 标准规定 sizeof char lt sizeof short lt sizeof int lt sizeof long 我在 BIT Linux mint 19 1 上使用 GCC 8 大小为long int is 8 我正
  • 在 WCF 上重用我的 PagedList 对象

    问题 我有一个自定义集合PagedList
  • Qt/c++ 随机字符串生成[重复]

    这个问题在这里已经有答案了 我正在创建一个应用程序 需要生成多个随机字符串 几乎就像一个由一定长度的 ASCII 字符组成的唯一 ID 这些字符混合有大写 小写 数字字符 有没有 Qt 库可以实现这一点 如果没有 在纯 C 中生成多个随机字
  • 头文件中实现的函数的静态与内联

    我想到的方式inline在 C 中用于链接 作用域 我把它放在同一个篮子里extern and static对于全局对象 通常 对于在头文件中实现的函数 我的首选解决方案是将其设为静态 In Foo h static void foo Do
  • Winform DatagridView 数字列排序

    我只使用一个简单的 DataGridView 来保存一堆数据 有趣的是 我在特定列中有小数 但是当按小数列排序时 它的排序是错误的 例如 起始顺序可能是 0 56 3 45 500 89 20078 90 1 56 100 29 2 39
  • 如何使用c#从数据桶中获取所有文档?

    如何获取数据桶中的所有文档 我尝试过一个示例 但我只能获得一个特定的文档 这是我的代码 CouchbaseClient oclient oclient new CouchbaseClient vwspace data bucket name
  • 为什么像 BindingList 或 ObservableCollection 这样的类不是线程安全的?

    我一次又一次发现自己必须编写 BindingList 和 ObservableCollection 的线程安全版本 因为当绑定到 UI 时 这些控件无法从多个线程更改 我想理解的是why情况就是这样 这是设计错误还是故意的 问题是设计一个线
  • C# 中的抽象类和接口类有什么不同?

    C 中的抽象类和接口类有什么不同 An 接口不是类 它只是一个contract定义了public一个类的成员must实施 抽象类只是一个类 您从中可以cannot创建一个实例 通常您会使用它来定义一个基类 该基类定义了一些virtual方法
  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref
  • 如何禁用基于 ValidationRule 类的按钮?

    如何禁用基于 ValidationRule 类的 WPF 按钮 下面的代码可以很好地突出显示 TextBox
  • 调试错误:在 vc++ 项目中使用 COM 时发生 所需的运行时?

    我为我的工作创建了一个 COM 组件 我也注册了该组件 在我的系统上 我有两个虚拟机工作站 在我的第一个工作站中 它运行良好 在我的第二个工作站中 它显示一个包含消息的错误框该程序需要一段时间并以不寻常的方式关闭 请联系应用程序管理员 我认
  • 如何释放字符串未使用的容量

    我正在程序中处理很多字符串 这些字符串数据在读入我的程序后的整个生命周期内都不会改变 但由于 C 字符串保留了容量 因此浪费了大量肯定不会被使用的空间 我尝试释放这些空间 但没有成功 以下是我尝试过的简单代码 string temp 123
  • 如何重用具有稍微不同的 ProcessStartInfo 实例的 Process 实例?

    我有以下开始的代码robocopy https technet microsoft com en us library cc733145 aspx as a Process 我还需要进行数据库查询以确定每次需要复制哪些目录robocopy被
  • 展开 std::reference_wrapper 的成本

    Given include
  • 基础设施 - 同步和异步接口和实现? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在实现库 基础设施时 并且该 API 的用户希望同步和异步使用代码 我读到混合同步和异步并不是一个好主意 例如 同步实现包括等待异步实现 显然
  • 如何通过代理将套接字连接到http服务器?

    最近 我使用 C 语言编写了一个程序 用于连接到本地运行的 HTTP 服务器 从而向该服务器发出请求 这对我来说效果很好 之后 我尝试使用相同的代码连接到网络上的另一台服务器 例如 www google com 但我无法连接并从网络中的代理
  • 为什么 C++ 标准没有将 sizeof(bool) 定义为 1?

    Size of char signed char and unsigned char由 C 标准本身定义为 1 个字节 我想知道为什么它没有定义sizeof bool also C 03 标准 5 3 3 1 说 sizeof char s
  • 使用任务的经典永无止境的线程循环?

    给出了一个非常常见的线程场景 宣言 private Thread thread private bool isRunning false Start thread new Thread gt NeverEndingProc thread S
  • 使用C标准数学库精确计算标准正态分布的CDF

    标准 C 数学库不提供计算标准正态分布 CDF 的函数 normcdf 然而 它确实提供了密切相关的函数 误差函数 erf 和互补误差函数 erfc 计算 CDF 的最快方法通常是通过误差函数 使用预定义常量 M SQRT1 2 来表示 d
  • 如何根据当前日期时间发现财政年度?

    我需要基于当前或今天的日期时间的财政年度 假设我们认为今天的日期是10 April 2011 那么我需要输出为Financial Year 2012在某些情况下 我需要以短格式显示相同的输出FY12 我想以两种方式显示 在我们的要求中 考虑

随机推荐

  • 何时应使用链表的现实世界示例有哪些?

    另一位程序员提到 在他的职业生涯中 他们还没有在任何专业软件中找到使用链表数据结构的用例 我一时想不出什么好的例子 他主要是 C 和 Java 开发人员 谁能举一些例子来说明这是解决特定现实世界问题的正确数据结构 Related 链表的实际
  • 询问 Python 值“是否可散列”

    我感兴趣的是采用任意字典并将其复制到新字典中 并一路改变它 我想做的一项改变是交换键和值 不幸的是 有些价值观本身就是命令 但是 这会生成 不可散列类型 dict 错误 我真的不介意只是将值字符串化并为其提供密钥 但是 我希望能够做这样的事
  • 是否可以在 Chrome 开发者工具元素面板中选择多个元素?

    是否可以在 Chrome 开发者工具元素面板中一次选择多个元素 对于删除多个同级元素或快速重新排序非常有用 我期望Command Click or Shift Click这样做但没有成功 答案是否定的 在 Chrome 开发工具中一次无法选
  • Python kivy - 如何减少TextInput的高度

    我正在使用 kivy 为应用程序制作一个非常简单的 GUI 没什么复杂的 布局非常简单 尽管如此 我在 TextInputs 方面遇到了困难 它们总是以全高显示 我无法设法使它们调整到 合理的 文本高度 如高度 我正在使用 kv 文件样式
  • 使用 QQuickImageProvider 的正确方法是什么?

    我需要动态选择 qpixmaps 以显示在 QML 图像项中 该 qpixmaps 应该从源 qpixmap 中裁剪出来 我将从 QML 文件中设置它 我希望它们能够根据 QML 的第一个需求被 C 代码裁剪并缓存以供将来使用 对于动态图像
  • 使用 Javascript 重新定位

    我试图根据特定条件在页面上重新定位 div if somecondition document getElementById Div1 setAttribute style position absolute left 297px top
  • Android Studio 上的 Flutter 崩溃

    Android studio崩溃并且无法运行项目 flutter升级到2 0后 flutter doctor 没有问题 dart 修复不起作用 建议在这里 Flutter项目升级到2 0 0后编译错误 https stackoverflow
  • 在网格视图上突出显示所选项目

    我试图突出显示 gridview 上的选定项目 使用适配器动态填充 但它不起作用 我做了研究 我什至尝试准确复制其他人的选择器 甚至他们将其放在 gridview 上的方式 但我无法让它工作 它只是没有做任何事情 每个项目的背景都是白色的
  • websocket消息会丢失吗?

    我目前正在开发一个 Java WebSocket 客户端应用程序 我必须确保客户端收到来自服务器的每条消息 由于连接中断 我是否可能丢失一些消息 一旦从服务器发送消息 WebSocket 基于 TCP 所以这种情况不应该发生 对吗 这有可能
  • 长双精度文字的 C++ 后缀是什么?

    在 C 和 C 中 不带后缀的浮点文字默认为double 而后缀f意味着一个float 但是获得 a 的后缀是什么long double 在不知道的情况下 我会定义说 const long double x 3 14159265358979
  • 什么是 CDI 豆?

    我有点困惑 我们将 CDI bean 称为我们注入它们的 bean Inject注释或我们使用的bean Inject他们里面 CDI豆是 CDI 可以实例化 管理和注入的类 自动满足其他对象的依赖关系 几乎任何 Java类可以由CDI管理
  • JSF/Primefaces AJAX 请求真的是异步的吗?

    我是 JSF 新手 所以我不知道我面临的行为是否正常 我有这个代码
  • PHP PDO 的单例替代方案

    这是我用来连接到我的课程MySQL数据库 正如你所看到的 我正在使用Singleton Pattern但几乎每个帖子都说这是一个非常糟糕的模式 创建数据库连接类的最佳方法是什么 有更好的模式吗 class DB extends PDO fu
  • C# 中的冗余?

    采取以下片段 List
  • com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException:当 autocommit=true 时无法调用回滚

    我在我的应用程序中使用 Jboss 5 0 和 mysql 并且会有很多并发操作 并且数据库包含相当多的记录 这个错误经常出现 时不时地 com mysql jdbc exceptions MySQLNonTransientConnecti
  • 如何在 NodeJs 中运行 SOAP 请求?

    起初这听起来像是一个重复的问题 但我已经浏览了我找到的所有博客 教程 视频 但没有一个真正说明了如何运行该请求 示例 对于 RESTful 请求 您在 NodeJs 中编码 点击路由 https localhost 3000 api get
  • 如何使用 junit 测试 if 语句?

    我似乎无法在网上找到任何解决此问题的教程 我有这个if陈述 if basket getCustomerId null Basket exBasket findBasketByCustomerId basket getCustomerId i
  • 如何使用点击手势显示/隐藏 pageViewController 上的状态栏(iOS8 / Swift)

    浏览所有类似问题的解决方案 我一直试图得到statusBar通过点击手势显示 隐藏 我已经设定View controller based status bar appearance NO在 plist 中 我在我的中尝试了以下代码DataV
  • HTML / CSS:遇到有关网站宽度/高度的问题

    我正在建立一个网站 为人们访问的区域做广告 作为我自己的一项任务 我花了一些时间尝试将迄今为止所做的所有工作都放在一页上 我希望没有滚动条 我不想让滚动条不可见等等 我的意思是让网页适合浏览器的一页 而用户无需出于美观目的而滚动 我尝试过调
  • 如何在Windows服务中检测从睡眠模式唤醒?

    再会 我编写了一个 Windows 服务 它检测 USB 闪存驱动器连接并对连接的驱动器执行某些操作 现在经过测试 我需要在从睡眠模式唤醒后重新处理设备 当服务作为 Windows 程序工作时 我解决了这个问题 为了解决我另外处理DBT D