c# - 检查显示是否被 Windows 电源管理关闭

标签 c# c++ winapi windows-7 windows-xp

如果“Windows 电源管理”已关闭显示器,我如何以编程方式检查 Windows 7 和 XP? (如果能收到事件就更好了。)

最佳答案

我认为它不能用于 XP。在 Windows 7 中,有各种与电源管理相关的好东西。 Windows API Code Pack是一组易于从 C# 或 VB 调用并映射 Windows 范例(如事件接收器、Windows 消息和函数指针)转换为 .NET 的(如委托(delegate)和事件)。从代码包附带的电源管理演示中,这里有一些您可能喜欢的代码:

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 Code Pack: Where is it?

如果你想像这篇文章中提到的那样使用它,请检查这个:https://stackoverflow.com/a/27709672/846232

关于c# - 检查显示是否被 Windows 电源管理关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530968/

相关文章:

c# - 在 C# 中监控一个大的日志文件

c# - Microsoft Azure 中的 SQL 连接错误

c# - 错误的使用?运算符[重复项]

c++ - printf 的浮点格式标志 (%f) 仅适用于英文数字格式

c# - 多线程 : starting a thread to execute a query while another process keeps going

c++ - 调试套接字 C++ 代码并帮助我理解

c++ - 如何使用 openMP 将顺序程序转换为并行程序?

c++ - 在 C++ 中将 struct 转换为 int

c++ - CreatePolygonRgn 和 const POINT *

c - 隐藏/显示选项卡控件 Win32 的子窗口