检查显示器是否被windows电源管理关闭
Check if display is turned off by windows power management
如果"Windows电源管理"已关闭显示器,我如何在Windows 7和XP中以编程方式进行检查?(如果我能收到一个事件,那就更好了。)
我认为XP无法做到这一点。在Windows7中,有各种与电源管理相关的好东西。Windows API代码包是一组托管包装器,它们很容易从C#或VB调用,并映射Windows范例(如事件接收器、Windows消息和函数指针)转换为.NET代码(如委托和事件。)从代码包附带的电源管理演示中,以下是您可能喜欢的一些代码:
using Microsoft.WindowsAPICodePack.ApplicationServices;
// . . .
PowerManager.IsMonitorOnChanged += new EventHandler(MonitorOnChanged);
// . . .
void MonitorOnChanged(object sender, EventArgs e)
{
settings.MonitorOn = PowerManager.IsMonitorOn;
AddEventMessage(string.Format("Monitor status changed (new status: {0})", PowerManager.IsMonitorOn ? "On" : "Off"));
}
编辑:
链接到Windows API代码包:Windows API代码包:它在哪里?
如果你想像这篇文章中提到的那样使用它,请检查以下内容:https://stackoverflow.com/a/27709672/846232
您的应用程序将在wParam中获得一条带有SC_MONITORPOWER的WM_SYSCOMMAND消息(请确保首先使用0xfff0和wParam)。当屏幕保护程序启动时,它将发送类似的消息(SC_SCREENSAVE)。如果你的目标是防止屏幕关闭,你可以在这些屏幕上返回0,尽管当用户设置了密码时,这是不起作用的。
相关文章:
- 当vector是tje全局变量时,c++中vector的内存管理
- 如何维护资源管理器项目视图中当前可见的项目列表
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 资源管理设计模式
- 使用"Task"函数指针队列定义作业管理器
- 实现动态插件管理器
- Alt+Enter 在 Win32 应用中,管理大小调整和分辨率
- libcurl 和 DNS ttl 中的内部连接管理
- 当分配一个字符串值并稍后通过分配另一个值进行更改时C++如何管理内存?
- 在C++管理一家中国.txt
- 编译器资源管理器和 GCC 具有不同的输出
- 我们可以通过 IPC 传递具有动态管理成员的类对象吗?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- Q没有管理权限的 exe 无法启动维护工具
- 电源功能模块化操作
- QT:管理来自 QNetworkReply 的回复
- 使用 std::vector<double> 访问由 std::unique_ptr<double[2] 管理的数据>
- 读取 TCP 标头并使用RAW_SOCKET管理 TCP 连接
- 如何在VB.net中使用Windows电源管理API
- 检查显示器是否被windows电源管理关闭