自己动手,丰衣足食。普通键盘实现键盘宏(Windows和Mac版)

本文介绍了如何在没有高端机械键盘的情况下,利用Windows下的按键精灵和Mac的AppleScript实现键盘宏功能。通过编写代码生成器,可以方便地创建和编辑宏,提高工作效率。在Windows下,按键精灵提供了简单易用的宏定义方式,而在Mac上,虽然AppleScript没有全局快捷键监听,但结合Automator仍能实现类似功能。
摘要由CSDN通过智能技术生成

很多高端机械键盘,支持宏定义,例如我们可以设置"D"键为"dota",这样当我们按一下宏开启键,再按一下"D"键,就等价于分别按了"d" "o" "t" "a"四个键。这时就可以把一些敲代码时常用的模板定义成键盘宏,到时候一键补全代码,既高效又装X。另外,玩游戏时想按出“下前下前拳”这样的组合技能也容易多了。

那么问题来了。。

山里来的买不起机械键盘的穷B同时又是程序员应该怎么办。。

其实这样简单的功能不一定非要硬件支持,借助一些现有软件模拟一下键盘就好了,在windows下有按键精灵和AutoHotKey这些神器,模拟起来很容易,而且体验非常完美。

我是借助按键精灵实现的,按键精灵语法很简单,例如 KeyPress "A", 3 就表示按A键3次,而且支持全局快捷键启动,支持监听用户输入,真是简单到无情。

不过问题又来了。。

键盘宏主要是按一系列按键,如果每个按键都写一行 KeyPress "X", 1 ,有的还得配合Shift键才能按出来,也是累,而且一行一句代码,看上去不直观,容易写错。

那就写个代码生成器就好了,我是用C语言+std::string实现的,直接把宏写成字符串,生成器自动输出相应的按键,粘贴到按键精灵中编译保存就好了。

贴一下代码:

  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 #include <ctype.h>
  5 #include <string>
  6 
  7 using std::string;
  8 
  9 enum class OpType {
 10     Press,
 11     Down,
 12     Up
 13 };
 14 
 15 enum class CombKey {
 16     Shift,
 17     Ctrl,
 18     Alt
 19 };
 20 
 21 void initTransHash(); //初始化按shift才能打出的字符
 22 void transfer(char c); //shift打出的字符转化为真正的按键
 23 void procOpType(OpType type); //输出按键操作
 24 void callKey(OpType type, char key, int count=1); //按键
 25 void callKey(OpType type, string key, int count=1); //重载,按功能键
 26 void keyComb(CombKey comb, char key); //组合键
 27 
 28 
 29 const int delay = 2;
 30 string
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值