仅供娱乐。

软件界面:

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;
using System.Diagnostics;namespace DotaHelper
{public partial class FrmDotaHelper : Form{public FrmDotaHelper(){InitializeComponent();}public delegate int HookProc(int nCode, int wParam, IntPtr lParam);static int hHook = 0;public const int WH_KEYBOARD_LL = 13;//LowLevel键盘截获,如果是WH_KEYBOARD=2,并不能对系统键盘截取,Acrobat Reader会在你截取之前获得键盘。 private static HookProc KeyBoardHookProcedure;private static bool IsForbiddenWindows;//键盘Hook结构函数 [StructLayout(LayoutKind.Sequential)]public class KeyBoardHookStruct{public int vkCode;public int scanCode;public int flags;public int time;public int dwExtraInfo;}#region DllImport//设置钩子 [DllImport("user32.dll")]public static extern int SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hInstance, int threadId);[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]//抽掉钩子 public static extern bool UnhookWindowsHookEx(int idHook);[DllImport("user32.dll")]//调用下一个钩子 public static extern int CallNextHookEx(int idHook, int nCode, int wParam, IntPtr lParam);[DllImport("kernel32.dll")]public static extern int GetCurrentThreadId();[DllImport("kernel32.dll")]public static extern IntPtr GetModuleHandle(string name);//注册系统热键[DllImport("user32")]public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);//注册热键[DllImport("user32")]public static extern bool UnregisterHotKey(IntPtr hWnd, int id);//解除热键[DllImport("user32")]public static extern void keybd_event(byte bVk,byte bScan,uint dwFlags,uint dwExtraInfo);//模拟键盘消息#endregion#region 目前小键盘7和9 onlybyte VK_NUM0 = 96;//byte VK_NUM1 = 97;//byte VK_NUM2 = 98;//byte VK_NUM3 = 99;//byte VK_NUM4 = 100;//byte VK_NUM5 = 101;//byte VK_NUM6 = 102;byte VK_NUM7 = 103;byte VK_NUM8 = 104;//byte VK_NUM9 = 105;#endregion#region 热键相关/// <summary>/// 注册热键///     None = 0,//Alt = 1,//Ctrl = 2,//Shift = 4,//WindowsKey = 8/// </summary>/// <param name="handle">窗口句柄</param>public void RegisterHotKey(){把shift+Q设为快捷键,快捷键ID为1RegisterHotKey(Handle, 1, 4, Keys.Q);RegisterHotKey(Handle, 1, 4, Keys.D1);//把shift+1  设为快捷键// RegisterHotKey(Handle, 2, 0, Keys.W);}/// <summary>/// 取消注册热键/// </summary>/// <param name="handle">窗口句柄</param>public void UnRegisterHotKey(){UnregisterHotKey(Handle, 1);// UnregisterHotKey(Handle, 2);}protected override void WndProc(ref Message m){switch (m.Msg){case 0x0312:    //遇到了注册的快捷键ID为1,按下小键盘7if (m.WParam.ToString().Equals("1")){keybd_event(VK_NUM7, 0, 0, 0);//表示小键盘7键按下keybd_event(VK_NUM7, 0, 0x7, 0);//小键盘7键弹起(先只做这一个格子的,基本够用了,一般都把跳刀放在这里)}//if (m.WParam.ToString().Equals("2"))//{//    keybd_event(VK_NUM0, 0, 0x8, 0);//表示9键按下//    keybd_event(VK_NUM0, 0, 0x8, 0);//表示9键弹起//}break;}base.WndProc(ref m);}#endregion#region 钩子相关/// <summary>/// 开始挂钩/// </summary>public static void Hook_Start(){// 安装键盘钩子 if (hHook == 0){KeyBoardHookProcedure = new HookProc(KeyBoardHookProc);//hHook = SetWindowsHookEx(2, //            KeyBoardHookProcedure, //          GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), GetCurrentThreadId()); hHook = SetWindowsHookEx(WH_KEYBOARD_LL,KeyBoardHookProcedure,GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), 0);//如果设置钩子失败. if (hHook == 0){Hook_Clear();//throw new Exception("设置Hook失败!"); }}}//取消钩子事件 public static void Hook_Clear(){bool retKeyboard = true;if (hHook != 0){retKeyboard = UnhookWindowsHookEx(hHook);hHook = 0;}//如果去掉钩子失败. if (!retKeyboard) throw new Exception("UnhookWindowsHookEx failed.");}//这里可以添加自己想要的信息处理 public static int KeyBoardHookProc(int nCode, int wParam, IntPtr lParam){if (nCode >= 0){KeyBoardHookStruct keys = (KeyBoardHookStruct)Marshal.PtrToStructure(lParam, typeof(KeyBoardHookStruct));if (keys.vkCode == 91 && IsForbiddenWindows)//屏蔽WINDOWS键{return 1;}//if (keys.vkCode == (int)Keys.F4 &&//    ModifierKeys == Keys.Alt)//如果是ALT+F4//{//    return 1;//}//if (keys.vkCode == (int)Keys.Tab &&//    ModifierKeys == Keys.Alt)//如果是ALT+TAB//{//    return 1;//}return CallNextHookEx(hHook, nCode, wParam, lParam);}return CallNextHookEx(hHook, nCode, wParam, lParam);}#endregionprivate void btnStart_Click(object sender, EventArgs e){if (btnStart.Text == "开始"){if (chkIsShortKey.Checked){this.RegisterHotKey();}Hook_Start();btnStart.Text = "结束";}else{if (chkIsShortKey.Checked){this.UnRegisterHotKey();}Hook_Clear();btnStart.Text = "开始";}}private void chkWindows_CheckedChanged(object sender, EventArgs e){IsForbiddenWindows = true;}}
}

DOTA 快捷键助手相关推荐

  1. 工具-Xmind常用快捷键/使用

    1-快捷键 Ctrl+Shift+L 快捷键助手 Ctrl+Home 返回中心主题 Ctrl+] 插入摘要 Ctrl+I 插入图片 Ctrl+Shift+H 插入超链接 Ctrl+1,2,3,4,5, ...

  2. vscode及typro快捷键

    Typora快捷键 目录 windows快捷键: 给代码块设置快捷键: Mac中的快捷键: 图片: 表情 数学公式 HTML 行内嵌数学符号 下标 高亮 参考: windows快捷键:# 无序列表:输 ...

  3. XMind 常用快捷键(思维导图总结)

    前言: 最近在学习使用XMind来总结一些知识点,也是增加一些自己的技能包,但是只用鼠标点点点,使用起来不太方便,那么XMind常用快捷键来啦! 希望帮助到宝子们,祝你开心~ 全部 快捷键(Windo ...

  4. Xmind 8 快捷键

    1.Xmind8快捷键整理[windows系统] 快捷键(Windows) 描述 Ctrl+N 建立新工作簿 Ctrl+O 开启工作簿 Ctrl+S 储存目前工作簿 Ctrl+Shift+S 储存全部 ...

  5. XMind思维导图软件和常用快捷键

    XMind思维导图软件和常用快捷键 搬砖- 官方推荐视频教程:Xmind思维导图从入门到精通-官方推荐教程B站视频 XMind 快捷键完整命令 快捷键(Windows) 快捷键(Mac) 描述 + + ...

  6. xmind 快捷键(实用总结)

    XMind实用总结建议收藏 常用 Ctrl+Shift+L 快捷键助手 Ctrl+Home 返回中心主题 Enter 插入主题 Tab 插入子主题 F2 编辑主题 F3 添加/编辑标签 F4 添加/编 ...

  7. Xmind 2021快捷键

    Xmind 2021快捷键(同时按住:与按键字母大小无关) 文件操作 新建 ctrl+n 新建标签页 ctrl+t 打开 ctrl+o 保存 ctrl+s 另存为 ctrl+shift+s 关闭窗口 ...

  8. xmind快速上手使用教程,提高工作效率

    文章目录 1 xmind快捷键 1.1 文件 1.2 编辑 1.3 插入 1.4 查看 1.5 自定义快捷键 2 快速上手使用,创建一个好看的思维导图教程 3 使用xmind快速创建一个思维导图 1 ...

  9. 升级win10的理由

    微软也没给我钱,我免费给它打了次广告. 我还是非常喜欢linux的,无奈公司深度依赖windows. 废话不多说,直接进入主题: [开机速度] 这里先说句题外话,不那么缺钱的兄弟,一定要去换一块SSD ...

最新文章

  1. 爬取动态网页(2017年年度豆瓣电影榜单)
  2. acwing2019. 拖拉机(最短路径)
  3. 张朝阳:未来文娱重点将拍更多网剧 发展UGC、短视频社交和直播社交
  4. 外部数据源的使用汇总
  5. 01Python基础_08模块和包
  6. Python实现查询12306火车票信息
  7. Vue安装教程 (一)
  8. 目标实现,时间、知识管理体系
  9. Win7显示文件拓展名
  10. php 图片后缀,php获取图片格式(图片后缀)
  11. python:制作水印图片
  12. Vue实现 TodoList
  13. 把幽灵和熔断关闭_比较幽灵和三巨头
  14. 利用Python爬取公交地铁数据(TransBigData版)
  15. windows server 2008 R2 怎么集成USB3.0驱动
  16. matlab solve 矩阵,在Matlab中求解矩阵DAE系统
  17. html打印页标题行,打印标题行的设置方法
  18. 【Vue知识点- No7.】路由、vant组件库的使用
  19. Python猫眼电影最近上映的电影票房信息
  20. c语言常考的笔试题1

热门文章

  1. Linux——重点回顾
  2. TinyTask:超简单的脚本录制工具,自动化办公黑科技
  3. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java快递代拿系统jx6gg
  4. java 英雄联盟回合战斗_Java策略模式:一个关于英雄联盟的例子
  5. 【工作感悟】下班随笔——IC验证日常工作感悟
  6. 安装app时报INSTALL_FAILED_NO_MATCHING_ABIS错误解决方式
  7. 软件操作说明-微信送礼
  8. Vbox虚拟机安装GHOSTXP蓝屏提示processr.sys,错误代码0x000000CE
  9. 梦幻服务器最新开服时间,《梦幻西游》开区 梦幻西游服务器开区时间
  10. bat批处理脚本语法学习