如何用C#关闭显示器!

2025-02-22 00:47:52
推荐回答(4个)
回答1:

你的需求,可以通过 SendMessage 想 Explorer 发送 WM_SYSCOMMAND 并附加参数解决,附加的消息参数如下:
1)SC_SCREENSAVE 启动屏保
2)SC_MONITORPOWER 关闭显示器

示例代码(已测试):
static class Program
{
static SqlConnection connection;

private const int WM_SYSCOMMAND = 0x112; //系统消息
private const int SC_SCREENSAVE = 0xf140; // 启动屏幕保护消息
private const int SC_MONITORPOWER = 0xF170; //关闭显示器的系统命令
private const int POWER_OFF = 2; //2 为关闭, 1为省电状态,-1为开机
private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff); //广播消息,所有顶级窗体都会接收

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);

static void Main()
{
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, POWER_OFF); // 关闭显示器
// SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_SCREENSAVE, 0); // 启动屏保
}
}

回答2:

在前面写上下面定义:
[System.Runtime.InteropServices.DllImport("user32")]
static extern void SendMessage(int hWnd, uint Msg, int wParam, int lParam);
使用:
SendMessage(65535, 274, 61760, 2);

回答3:

sa das sad

回答4:

你就直接用c#启动屏保吧