首页 技术 正文
技术 2022年11月11日
0 收藏 614 点赞 4,030 浏览 1234 个字

一、全局热键注册

1、先引用DLL

[System.Runtime.InteropServices.DllImport(“user32.dll”)] //导入WinAPI

public static extern bool RegisterHotKey( //设置热键

IntPtr hWnd, // 窗口句柄,一般使用Handle属性

int id, // 区别热键的ID号,这个可以随便写,只是用来区分不同热键

uint fsModifiers, // 修正键用户接下哪些键是发生 可能为contol=2, alt=1, shift=4, windows=8或这些键的组合,如果没有的话直接用0

Keys vk // 键

);

[System.Runtime.InteropServices.DllImport(“user32.dll”)] //导入WinAPI

public static extern bool UnregisterHotKey( //注销热键

IntPtr hWnd, // 窗口句柄

int id // 键标识

);

2、调用函数

RegisterHotKey(Handle, 200, 0, Keys.F1); // 注册热键F1

3、此事件用来响应热键

protected override void WndProc(ref Message m)//监视Windows消息

{

const int WM_HOTKEY = 0x0312; //如果m.Msg的值为0x0312那么表示用户按下了热键

switch (m.Msg)

{

case WM_HOTKEY: ProcessHotkey(m); //按下热键时调用ProcessHotkey()函数

break;

}

base.WndProc(ref m); //将系统消息传递自父类的WndProc

}

4、判断是按了哪个热键,然后执行方法

private void ProcessHotkey(Message m) //用于控制运行窗体是否开启

{

IntPtr id = m.WParam; //IntPtr用于表示指针或句柄的平台特定类型

string sid = id.ToString(); //根据注册热键时传递的ID区分按得是哪个热键

switch (sid)

{

case “200”: //code。。触发之后执行的代码

break;

}

}

二、模拟按键(全局)

1、引用API

[DllImport(“user32.dll”, EntryPoint = “keybd_event”)]

public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, UIntPtr dwExtraInfo);

参数1:键盘码,具体请到百度搜索键盘码

参数2:键盘扫描码,可以使用0

参数3:表示触发的键盘事件类型,比如key_up,key_down等,默认直接用0

参数4:没多大用,直接用UIntPtr.Zero就行

2、调用

byte VK_F11 = 122; //模拟按下F11键

keybd_event(VK_F11, 0, 0, UIntPtr.Zero);

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,133
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,297