国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#通過熱鍵控制顯示器開關的方法

2019-10-29 21:47:50
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C#通過熱鍵控制顯示器開關的方法,涉及C#針對熱鍵的操作技巧,非常具有實用價值,需要的朋友可以參考下
 

本文實例講述了C#通過熱鍵控制顯示器開關的方法。分享給大家供大家參考。

具體實現方法如下:

 

復制代碼代碼如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

 

namespace OpenMonitor
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            HotKey.RegisterHotKey(this.Handle, 100, 0, Keys.F4);
            HotKey.RegisterHotKey(this.Handle,101,0,Keys.F5);
        }

        class HotKey
        {
            // 如果函數執行成功,返回值不為0。 
            // 如果函數執行失敗,返回值為0。要得到擴展錯誤信息,調用GetLastError。 
            [DllImport("user32.dll  ", SetLastError = true)]
            public static extern bool RegisterHotKey(
                   IntPtr hWnd, // 要定義熱鍵的窗口的句柄 
                    int id,    // 定義熱鍵ID(不能與其它ID重復)   
                   KeyModifiers fsModifiers, // 標識熱鍵是否在按Alt、Ctrl、Shift、Windows等鍵時才會生效 
                   Keys vk    // 定義熱鍵的內容 
                   );

            [DllImport("user32.dll  ", SetLastError = true)]
            public static extern bool UnregisterHotKey(
                   IntPtr hWnd,  // 要取消熱鍵的窗口的句柄 
                    int id      // 要取消熱鍵的ID 
                   );

            // 定義了輔助鍵的名稱(將數字轉變為字符以便于記憶,也可去除此枚舉而直接使用數值) 
            [Flags()]
            public enum KeyModifiers
            {
                None = 0,
                Alt = 1,
                Ctrl = 2,
                Shift = 4,
                WindowsKey = 8
            }
        }

        protected override void WndProc(ref    Message m)
        {
            const int WM_HOTKEY = 0x0312;
            // 按快捷鍵   
            switch (m.Msg)
            {
                case WM_HOTKEY:
                    switch (m.WParam.ToInt32())
                    {
                        case 100:
                            MonitorHelper.TurnOn();
                            break;
                        case 101:
                            MonitorHelper.TurnOff();
                            break;
                    }
                    break;
            }
            base.WndProc(ref    m);
        }

        class MonitorHelper
        {
            public static void TurnOn()
            {
                SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
            }

            public static void TurnOff()
            {
                SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
            }

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

            private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);
            private const uint WM_SYSCOMMAND = 0x0112;
            private const int SC_MONITORPOWER = 0xf170;
        }
    }
}

 

希望本文所述對大家的C#程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肇东市| 喜德县| 娱乐| 江山市| 海伦市| 惠水县| 高州市| 涟源市| 常宁市| 景谷| 枞阳县| 达州市| 南康市| 濮阳市| 象山县| 雷州市| 博兴县| 皮山县| 洛南县| 和平县| 宁夏| 垣曲县| 呼和浩特市| 舞钢市| 乌审旗| 五华县| 兴仁县| 肥城市| 方城县| 宜春市| 广州市| 巨野县| 成安县| 青龙| 抚宁县| 淄博市| 红河县| 轮台县| 清原| 江北区| 静乐县|