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# 通过热键控制显示器开关
- C#实现重启、关机、开关显示器的方法
- C#实现重启、关机、开关显示器的方法
- C#实现重启、关机、开关显示器的方法
- WinCE C#程序,控制启动时仅仅能启动一个程序,使用相互排斥量来实现,该实现方法測试通过
- C#通过Semaphore类控制线程队列的方法
- C#实现通过winmm.dll控制声音播放的方法
- C#实现重启、关机、开关显示器的方法
- C#实现开关显示器功能
- 通过API实现C#对硬件的控制(一)
- C#通过属性名称获取(读取)属性值的方法
- C#实现通过模板自动创建Word文档的方法
- 通过win32api让c#控制Windows任务栏
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
- jQuery通过控制节点实现仅在前台通过get方法完成参数传递
- c#为程序添加全局热键的方法
- List<T>集合导出csv方法参考,通过增加自定义的属性控制输出的字段。
- C# 反射,通过类名、方法名调用方法
- C# 通过线程来控制进度条(转)--讲解多线程对界面的操作
- [ MTK,FAQ]如何通过adb command去控制MTKLogger 开关,设定log路径