首先,引用using System.Runtime.InteropServices;

using System.Runtime.InteropServices;

其次,声明API函数,分别为RegisterHotKey(注册热键)和UnregisterHotKey(卸载热键)

[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd, //handle to winfowint id, //hot key identiferuint fsModifiers, // key-modifier optionsKeys vk //virtual-key code);[DllImport("user32.dll")]
public static extern bool UnregisterHotKey(IntPtr hWnd, //handle to winfowint id //hot key identifer);

然后,定义枚举

public enum KeyModifiers{None = 0,Alt = 1,Control = 2,Shift = 4,Windows = 8}

之后,重写WndProc事件,并定义相应的点击事件

protected override void WndProc(ref Message m)
{//如果m.Msg的值为0x0312,则表示用户按下了热键const int WM_HOTKEY = 0x0312;switch (m.Msg){case WM_HOTKEY:ProcessHotKey(m);break;}base.WndProc(ref m);
}

最后,在Form加载页面或者构造函数中根据需求注册热键,在关闭Form之前卸载热键,即可。

public Form2()
{InitializeComponent();//注册HotKeyRegisterHotKey(Handle, 100, 1, Keys.D1);//Alt + 1RegisterHotKey(Handle, 200, 1, Keys.D2);//Alt + 2RegisterHotKey(Handle, 300, 2, Keys.D2);//Control + 2
}private void Form2_BeforeClose(object sender, FormClosingEventArgs e)
{UnregisterHotKey(Handle, 100);UnregisterHotKey(Handle, 200);UnregisterHotKey(Handle, 300);
}

编写时主要参考了这篇博客——C# WinForm程序中使用热键(HotKey)_代码世界-CSDN博客_winform 系统热键

TXTReader功能之一:HotKey相关推荐

  1. TXTReader功能之二:页码问题

    页码功能设计时,有如下想法: 前一.后一.首页.尾页,以及指定页码跳转 当窗口大小变化时页码随之变化 页码工具栏设计如下图: 我使用了richtextbox去显示文本,其中核心代码如下: privat ...

  2. (程序员必备技能)基于Python的鼠标与键盘控制实战扩展与源码

    (程序员必备技能)基于Python的鼠标与键盘控制实战与源码 文章目录 (程序员必备技能)基于Python的鼠标与键盘控制实战与源码 一.序言 二.配置环境 1.下载pyautogui包 三.鼠标控制 ...

  3. pyhon3模拟鼠标点击滚动下拉,键盘复制粘贴输入中文

    安装包 pip install pyautogui pip install pyperclip pyautogui 更多参考官网:https://github.com/asweigart/pyauto ...

  4. gi克隆github文件_如何构建GitHub文件搜索功能的克隆

    gi克隆github文件 In this article, we will build a project that mimics the lesser known but awesome file ...

  5. python画简单的图形的代码-Python实现画图软件功能方法详解

    概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...

  6. 经典vim插件功能说明、安装方法和使用方法介绍(已更新)

    1 #=============================================================================  2 转载请注明出处: http:// ...

  7. 一文详解Redis中BigKey、HotKey的发现与处理

    简介: 在Redis的使用过程中,我们经常会遇到BigKey(下文将其称为"大key")及HotKey(下文将其称为"热key").大Key与热Key如果未能及 ...

  8. C#中实现QQ截图的功能及相关问题

    对于QQ截图,肯定是早就有认识了,只是一直没有去认真观察这个操作的具体实现步骤.所以这里将自己的记忆中的步骤简单的写一下: 习惯性用QQ或者TIM的人,一般是使用Ctrl+Alt+A  快捷键(热键) ...

  9. python画图代码大全-Python实现画图软件功能方法详解

    概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...

  10. python截图工具和模拟鼠标键盘_python PyAutoGUI 模拟鼠标键盘操作和截屏功能

    简介 一款跨平台/无依赖的自动化测试工具,目测只能控制鼠标/键盘/获取屏幕尺寸/弹出消息框/截屏. 安装 pip install pyautogui 鼠标键盘控制 >>> impor ...

最新文章

  1. python读取邮件发送日期和时间_Python读取指定日期邮件的实例
  2. 探讨:COCO2017数据集中包含很多目标被标注为一个框bbox,是标注错误吗?
  3. Supervisor使用教程
  4. mysql clickhouse_通过mysql操作clickhouse
  5. 我和2000万人在B站刷凤凰传奇
  6. ubuntu安装ros_ROS--Melodic 安装
  7. 一文搞定Linux环境下线程编程,这些东西老师也不会教你。(史上最详细的线程攻略)
  8. [29/May/2017 10:56:52] “GET /static/css/stylee.css HTTP/1.1“ 404 1859 【附带解决方案】
  9. [bzoj5158][Tjoi2014]Alice and Bob
  10. 《深入应用C++11:代码优化与工程级应用》勘误表
  11. windows电脑桌面透明便签待办分类怎么添加
  12. 自定义SeekBar 带文字
  13. amd服务器epyc系列,AMD在市场上有EPYC系列的两个版本
  14. matlab方程求解的实验,实验七用matlab求解常微分方程
  15. 雷曼另类“死因”:巴菲特漏看求救短信
  16. NAND flash 和 NOR flash 区别
  17. Ntrip通讯协议1.0
  18. 企业邮箱WebMail协助办公功能盘点
  19. 选择换IP软件安全吗?
  20. 网络安全立法探讨(Cyber Security Laws discussion):立法是否应该更严格?

热门文章

  1. 河南公务员写古文辞职信:陡增酒量 武功尽废
  2. jQuery基本操作--制作论坛发帖
  3. dispatch_queue_create创建源码分析
  4. UE4 单面模型法线翻转及碰撞问题
  5. 一种 Python 获取时间序列数据集的方式
  6. 任务栏-IDEA图标变白色
  7. ugui 转轮_unity3D的FingerGestures小工具
  8. matlab求两向量夹角_12分高考答题必刷题型,“空间向量分析点到线的距离问题”...
  9. java 初始化duration_Java Duration toMillis()用法及代码示例
  10. 创建型模式 - 单例模式Singleton