簡體   English   中英

檢查顯示是否被 windows 電源管理關閉

[英]Check if display is turned off by windows power management

如果“Windows 電源管理”已關閉顯示屏,我如何以編程方式檢查 Windows 7 和 XP? (如果我能收到一個事件,那就更好了。)

我不認為它可以為 XP 完成。 在 Windows 7 中有各種與電源管理相關的好東西。 The Windows API Code Pack is a set of managed wrappers that are simple to call from C# or VB and that map Windows paradigms (like event sinks, Windows messages and function pointers) into .NET ones (like delegates and events.) From the Power Management代碼包附帶的演示,這里有一些你可能喜歡的代碼:

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,盡管當用戶設置了密碼時這不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM