【发布时间】:2013-01-13 16:02:41
【问题描述】:
有什么方法可以拦截按下物理电源按钮的事件以对此事件做出反应?即:
Push button -> My program catches the event -> My program performs action.
我的目标是编写一个 C# 程序/服务来监听电源按钮事件,然后打开“问我该怎么做”关机对话框(就像它在 Windows XP 时代所做的那样)。
【问题讨论】:
-
@Jason:不是重复的。 OP 询问是否拦截按下电源按钮(以便它执行除关闭以外的其他操作),而另一个问题是关于检测系统正在关闭。
-
如果不是这两个的重复,那么你必须这样做:sevenforums.com/customization/…
-
我知道您可以将 CallNtPowerInformation 与 SystemPowerPolicyAc(和/或 Dc)一起使用来禁用电源按钮,使其不执行任何操作;为此,您需要将
PowerButton.Action设置为PowerActionNone并将PowerButton.EventCode设置为POWER_FORCE_TRIGGER_RESET。相同的 API 提供了执行程序的选项,但我不清楚如何使用它。你也许可以通过实验来解决它,或者搜索关键字POWER_LEVEL_USER_NOTIFY_EXEC可能会给你一些线索。 -
这是“问我该怎么做”对话框:link
标签: c# .net windows power-management