C# 自动关闭或打开显示器
本帖最后由 威廉乔克斯 于 2013-7-9 22:08 编辑C# Code:
/// <summary>
/// 监视器开关控制
/// </summary>
public class MonitorTool
{
public static extern IntPtr SendMessage(
IntPtr hWnd,
uint msg,
uint wParam,
int lParam);
//系统消息
private const uint WM_SYSCOMMAND = 0x112;
//关闭显示器的系统命令
private const int SC_MONITORPOWER = 0xF170;
//2为PowerOff, 1为省电状态,-1为开机
private const int MonitorPowerOff = 2;
/// <summary>
/// 关闭显示器
/// </summary>
public static void PowerOff(IntPtr hWnd)
{
SendMessage(
hWnd,
WM_SYSCOMMAND,
SC_MONITORPOWER,
2
);
}
/// <summary>
/// 打开显示器
/// </summary>
public static void PowerOn(IntPtr hWnd)
{
SendMessage(
hWnd,
WM_SYSCOMMAND,
SC_MONITORPOWER,
-1
);
}
}测试:
C# Code:private void button2_Click(object sender, EventArgs e)
{
MonitorTool.PowerOff(this.Handle);
Thread.Sleep(3000);//三秒后自动打开显示器
MonitorTool.PowerOn(this.Handle);
} 没试过,可行吗? 天堂羽叶 发表于 2013-7-5 18:17
没试过,可行吗?
可以的。这个我自己都在用的 嗯,不错,试过了,可以用
另外, 发送消息的窗口句柄可以传入 -1, 我在Console 程序中可用.
MonitorTool.PowerOff((System.IntPtr)(-1)); nyfor 发表于 2013-7-8 13:05
嗯,不错,试过了,可以用
另外, 发送消息的窗口句柄可以传入 -1, 我在Console 程序中可用.
{:3_48:}{:3_48:}{:3_48:}{:3_48:}{:3_48:}{:3_48:} 真心不错
哈哈 这个好,我喜欢,前段日子。还想着有没好方法可以实现。 不错,可以用. 这个主要用来干啥?。。。。 好像可以用来挂机,不用别人开,自己再搞外钩子,
设定下按下某些键才开显示器. 谢谢.....^^ 有人试过吗 这个可行吗 不错,学习了 好厉害的代码
页:
[1]