检查显示器是否由Windows电源管理关闭

如何在Windows 7和XP中以编程方式检查“Windows电源管理”是否关闭了显示屏? (如果我能收到一个事件,那会更好。)


我不认为它可以为XP做。 在Windows 7中,有各种与电源管理相关的好东西。 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,但在用户设置密码时不起作用。


我认为你可以使用ServiceController! 如果关闭它,如何关闭Windows服务。 从Web应用程序控制它

链接地址: http://www.djcxy.com/p/8323.html

上一篇: Check if display is turned off by windows power management

下一篇: remove final info screen