AutoHotKey写一个改键的小脚本

应D君邀请写一个小的改键软件,用了一上午选择使用的脚本语言,下午开始去写。晚饭的时候,基本的功能完成了。先所说我要完成的脚本的功能吧。软件有一定编程基础的D君用,用户比较特定,功能越简单越好。因此,软件实现了手动添加快捷键打开和关闭改键,修改AutoHotKey脚本设置修改键。当然为了易用编写一个自动安装(软件自启动)和自动卸载的功能,这个功能自然是通过修改注册表实现的啦。

废话不多说,直接上干货!!

1 脚本语言的选择

由于改建使用的功能简单,不考虑使用C这样大牛语言,这种语言要自己写键盘的钩子,我等小辈真心不会啊。所有选择使用脚本语言去完成这个任务。我辈长使用的脚本语言:shell(like Unix下使用)、cmd、vbs、AutoIt。前面两个脚本原因功能比较底层实现起来需要费工夫。所有考虑只能考虑使用AutoIt(http://www.autoitx.com/)和vbs,伟大的度娘搜索了半天,无奈AutoIt没有检测键盘按下函数。虽然有HotKey和_IsPress函数可以使用,但是使用起来很麻烦。搜索到键盘精灵这个软件,苦于没有使用过,而且语法也不太熟悉。最终还是选择了AuoIt的孪生妹妹AutoHotKey。AutoHotKey和AutoIt完成的功能相似,但是使用起来更加的人性化和简便。AutoHotKey有诸如^j::!F4这样的语法直接将Ctrl+j(^表示Ctrl)修改成Alt+F4(!表示Alt)。这简直就是为改键而生。

2 改建功能的实现

AutoHotKey脚本语言语言级别支持了改键的操作,有两种方式,一种是简写方式,一种是Send方式。例如将^j(Ctrl+j)修改成Alt+F4,第一种方式可以写成^j::!f4,第二种方法写成 第一种方式比较简洁,第二种方式比较繁琐一些,但是可以实现比较负责的功能。第一种方式实现功能已经足够了。 因此有了alterKeys.ahk中的脚本:   脚本代码将小键盘的7,8,9修改成了Alt,Control和Delete键。控制键(Ctrl,Home等)对应的表示方式见:https://autohotkey.com/docs/Hotkeys.htm

3 改键开关功能实现

为了实现开关功能,由于改建功能比较独立且程序运行占用内容比较小。可以在改键应用程序上加一个壳程序,然后让壳程序自动运行。实现这个功能设置改键用的哦啊了改键的第二种方式。按下开键(F1),壳程序打开autoKeys.exe,按下关键(F2),杀死可autoKey.exe的进程。打开autoKeys.exe用到了Run命令,非常简单直接Run, autoKeys.exe即可。autoRun.ahk脚本的内容为:   加上#NoTrayIcon不让autoRun的壳程序在托盘显示。使用Run命令运行autoKey.exe,使用Process,Exist,alterKeys.exe 可以知道alterKeys.exe文件是不是已经运行,使用Process,Close,alterKeys.exe 结束alterKeys.exe进程。  

4 加入开机启动

最后我们用写了一个CMD自动安装文件,将autoRun.exe加入的开机启动。加入开机启动可以有两种方法,一种是将程序的快捷方式复制到开始菜单中的启动目录下(在我的电脑上目录为:C:UsersAdministratorAppDataRoamingMicrosoftWindowsStart MenuPrograms),第二种是使用Reg add往注册表开机启动中添加注册表选项。这里使用后一种方式。Reg add命令需要一个当前目录信息,使用`pwd`或者是set exePath=%~dp0autoRun.exe(%~dp0表示程序的当前目录,目录后面有所有连接的时候不用添加)autoReg.cmd的代码为:  
顺势又写了一个自动卸载的脚本,就是将选项从注册表中删除就行了。核心代码就一句 reg delete “HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun” /v alterKeys /f   最后附带上自己在百度网盘上的源代码地址: 链接:  http://pan.baidu.com/s/1hreOwRU 密码: 3ejk  

AutoHotKey写一个改键的小脚本

AutoHotKey写一个改键的小脚本

什么是架构设计构设计看这篇文章就够了

Redis为什么这么快/p>

重磅:解读2020年最新JVM生态报告

BIO,NIO,AIO 总结

JDK8的新特性,你知道多少/p>

回复“资料”,免费获取 一份独家呕心整理的技术资料! 

AutoHotKey写一个改键的小脚本

 

来源:非典型理科男

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年11月11日
下一篇 2015年11月12日

相关推荐