硬件维护 百分网手机站

C#通过热键控制显示器开关方法简介

时间:2018-07-13 16:41:52 硬件维护 我要投稿

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#程序设计有所帮助。

【C#通过热键控制显示器开关方法简介】相关文章:

1.显示器的修理方法

2.显示器有点花如何做解决显示器常识简介

3.现代H240显示器简介

4.显示器选购的方法

5.保养LCD显示器的方法

6.显示器的维护方法

7.如何使用开关电源-开关电源的使用方法

8.C# AutoResetEvent的使用