硬件维护

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

时间:2024-10-08 14:39:23 硬件维护 我要投稿
  • 相关推荐

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#通过热键控制显示器开关方法简介】相关文章:

显示器的维护方法06-29

设置双显示器显示的方法11-17

内部控制审计的程序与方法10-20

配置显示器颜色配置文件方法教程12-02

酒店如何控制成本-酒店控制成本的方法03-29

品质控制的检验方法07-31

有效控制服装尺寸的方法05-25

mercury无线路由器的设置方法简介04-22

开关电源工作原理-开关电源的工作模式09-03

如何用C#制作气泡屏幕保护07-19