今天是:
设为首页 收藏本站 联系站长

◆你现在的位置是:首页 >> 程序开发 >> asp.net >> 正文
站内搜索:

 

控制显示器的关闭和恢复

2008-03-28 阅读: 出处: 作者: 编辑: 
 

通常可以通过桌面属性的电影管理来控制显示器在计算机无用户输入若干时间后进入关闭状态(如下图所示),这个功能不仅可以实现比屏幕保护程序更好的对屏幕的保护,而且还可以节约很多电能,可以说是一个聪明环保的技术。不过在很多情况下你可能想马上关闭显示器,但让主机一直开着听听mp3音乐或者下载什么的,可惜的是windows没有默认提供这个功能。

下面我们来做一个这样的关闭程序。查询msdn的api后发现,其实这个小功能实现起来非常简单,利用WM_SYSCOMMAND消息的SC_MONITORPOWER参数就可以控制显示器的状态。下面是完整的C#代码,实现过程中使用了.net interop来发送我们的控制消息。

using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4 using System.Runtime.InteropServices;
 5 using System.Threading;
 6
 7 namespace ShutDownMonitor
 8 {
 9     class Program
10     {
11       
12         static void Main(string[] args)
13         {
14             Console.WriteLine("Monitor is being shut off");
15             Thread.Sleep(1000);
16             Monitor.TurnOff();
17             Thread.Sleep(2000);
18             Monitor.TurnOn();
19             Console.WriteLine("Monitor is turned on");
20         }
21
22     }
23
24     class Monitor
25     {
26         [DllImport("user32.dll")]
27         public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
28         public static void TurnOn()
29         {
30             SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
31         }
32
33         public static void TurnOff()
34         {
35             SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
36         }
37
38         static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);
39         const uint WM_SYSCOMMAND = 0x0112;
40         const int SC_MONITORPOWER = 0xf170;
41     }
42 }

上一条新闻:
下一条新闻:

【郑重声明】渐飞IT人阵地刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何投资或其他建议。转载需经渐飞IT人阵地同意并注明出处。本网站有部分文章是由网友自由上传。对于此类文章本站仅提供交流平台,不为其版权负责。如果您发现本网站上有侵犯您的知识产权的文章,请联系我们。
相关资讯
进入渐飞IT人阵地
姓名: 发言时务必尊重网上道德与相关法律法规
 

热点推荐排行榜

网站模板欣赏

最新软件下载