简而言之:
我想截取笔记本电脑上的挂起/待机消息,但我的程序没有收到所有相关消息。
背景:
在 windows xp/2k 上的 ms-excel 中有一个错误,如果在网络/USB 驱动器上打开文件,它会阻止系统挂起。
我正在尝试以编程方式解决它(我的工具箱包括 python、vb6 或命令行工具)。
我对 Windows 仪表一无所知:-)
我有一个 sysinternals 实用程序,无论如何都会暂停系统。我想把它和闭盖事件挂钩!
长:
笔记本盖子关闭(富士通u810)启动待机程序[如何?]
然后系统向所有人发送 WM_POWERBROADCAST: PBT_APMQUERYSUSPEND(我可以使用 跟踪他们SPYXX.EXE
)
每个程序都回答“真”,直到excel回答“假”,整个过程就停止了。
我的问题:
1)我的python程序既没有捕获pbm_apmquerysuspend,也没有捕获PBT_APMQUERYSTANDBYFAILED,也没有捕获PBT_APMQUERYSUSPENDFAILED:` ...
query = "SELECT * FROM Win32_PowerManagementEvent"
power_watcher = wmi.ExecNotificationQuery ( query )
power_event = power_watcher.NextEvent ()
` 如果待机最终发生,它只接收 PBT_APMSUSPEND。
为什么不 - 我如何拦截它?
2)还有其他方法可以拦截待机进程吗?
在一个完美的世界里,我会设置盖子关闭事件来运行我选择的命令。在一个完美的世界里,合盖是一个记录在案的事件。
谢谢你们 :-)