自己动手,丰衣足食。普通键盘实现键盘宏(Windows和Mac版)
2015-09-02 15:45
375 查看
很多高端机械键盘,支持宏定义,例如我们可以设置"D"键为"dota",这样当我们按一下宏开启键,再按一下"D"键,就等价于分别按了"d" "o" "t" "a"四个键。这时就可以把一些敲代码时常用的模板定义成键盘宏,到时候一键补全代码,既高效又装X。另外,玩游戏时想按出“下前下前拳”这样的组合技能也容易多了。
那么问题来了。。
山里来的买不起机械键盘的穷B同时又是程序员应该怎么办。。
其实这样简单的功能不一定非要硬件支持,借助一些现有软件模拟一下键盘就好了,在windows下有按键精灵和AutoHotKey这些神器,模拟起来很容易,而且体验非常完美。
我是借助按键精灵实现的,按键精灵语法很简单,例如 KeyPress "A", 3 就表示按A键3次,而且支持全局快捷键启动,支持监听用户输入,真是简单到无情。
不过问题又来了。。
键盘宏主要是按一系列按键,如果每个按键都写一行 KeyPress "X", 1 ,有的还得配合Shift键才能按出来,也是累,而且一行一句代码,看上去不直观,容易写错。
那就写个代码生成器就好了,我是用C语言+std::string实现的,直接把宏写成字符串,生成器自动输出相应的按键,粘贴到按键精灵中编译保存就好了。
贴一下代码:
AppleScript_键盘宏_模板
但是焦点会被dialog获取,需要在键盘宏之前把接收键盘宏的进程设为最前。
还是安装虚拟机好得多。。
那么问题来了。。
山里来的买不起机械键盘的穷B同时又是程序员应该怎么办。。
其实这样简单的功能不一定非要硬件支持,借助一些现有软件模拟一下键盘就好了,在windows下有按键精灵和AutoHotKey这些神器,模拟起来很容易,而且体验非常完美。
我是借助按键精灵实现的,按键精灵语法很简单,例如 KeyPress "A", 3 就表示按A键3次,而且支持全局快捷键启动,支持监听用户输入,真是简单到无情。
不过问题又来了。。
键盘宏主要是按一系列按键,如果每个按键都写一行 KeyPress "X", 1 ,有的还得配合Shift键才能按出来,也是累,而且一行一句代码,看上去不直观,容易写错。
那就写个代码生成器就好了,我是用C语言+std::string实现的,直接把宏写成字符串,生成器自动输出相应的按键,粘贴到按键精灵中编译保存就好了。
贴一下代码:
tell application "System Events" display dialog "choose" default answer "" set ans to text returned of result if ans = "p" then keystroke "1" keystroke "0" keystroke "0" keystroke "8" keystroke "6" else display dialog "unknown" end if end tell
AppleScript_键盘宏_模板
但是焦点会被dialog获取,需要在键盘宏之前把接收键盘宏的进程设为最前。
tell process "XXXXXX" set frontmost to true end tell
还是安装虚拟机好得多。。
相关文章推荐
- POJ 3744 Scout YYF I (概率dp+矩阵快速幂)
- 一个小游戏
- thinkPHP的M()和D()的区别
- Android中SQLite用法
- DLL中传递STL参数
- OkHttp实现文件上传进度
- 一页纸说清楚“什么是大数据”
- json过滤list中的键值
- 经济--银行理财基础篇
- The content of element type "session-factory" must match "(property*,mapping*,(class-cache|collectio
- 备份脚本一
- Spring获取bean的步骤
- 排序算法:归并排序
- Android中自定义属性的使用
- Spring MVC 中 HandlerInterceptorAdapter的使用
- Spring获取bean的步骤
- warden 的设计与实现 总结
- Struts2 part 2:Action的编写方式
- 路由协议对比(更新中)
- SQL中distinct的用法(四种示例分析)