[原創]C#省電絕招-程式控制顯示器的關閉和恢複

來源:互聯網
上載者:User


原創文章,未賦予轉載複製的權利。如需轉載,請聯絡博主

通過C#控制顯示器的關閉和恢複
本文講述如何使用C#程式來控制顯示器的開啟與關閉

通常可以通過案頭屬性的電影管理來控制顯示器在電腦無使用者輸入若干時間後進入關閉狀態(如所示),這個功能不僅可以實現比螢幕保護裝置程式更好的對螢幕的保護,而且還可以節約很多電能,可以說是一個聰明環保的技術。不過在很多情況下你可能想馬上關閉顯示器,但讓主機一直開著聽聽mp3音樂或者下載什麼的,可惜的是windows沒有預設提供這個功能。

下面我們來做一個這樣的關閉程式。查詢msdn的api後發現,其實這個小功能實現起來非常簡單,利用WM_SYSCOMMAND訊息的SC_MONITORPOWER參數就可以控制顯示器的狀態。下面是完整的C#代碼,實現過程中使用了.net interop來發送我們的控制訊息。

 1 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 }
43 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.