一、CpasLock键优化方案
CapsLock键位置优越,却在windows日常使用中极少用到。由于它的功能并不是那么优越,于是我开始找一种方案,使它高效起来。当我遇到Autohotkey,就像发现了新大陆!
AutoHotkey的语法之简便和功能的强大就不做介绍了,有兴趣学习的朋友请访问官网AutoHotkey ,官网拥有完整的v1和v2alpha文档提供大家参考。
这里介绍一下我使用的脚本映射功能。分为三部分,1、键优化;2、Win组合键;3、Win多媒体功能(音量)。脚本有完整的功能注释。
将CapsLock映射为Ctrl,并且通过Ctrl+CapsLock触发CapsLock功能(不抛弃,不放弃)。
/** ------------ 键优化 ------------ **/
^CapsLock::CapsLock ;Ctrl+CapsLock 触发 CapsLock
CapsLock::Ctrl ;CapsLock 映射 Ctrl
/** --------------------- Windwos组合键功能 ---------------------------
----------------------------------------------------------------- **/
^q::Send "^{tab}" ;标签切换功能
!f::Send "#{t}" ;alt+f 触发 win+t
/** -------------- 高效编辑 -------------- **/
!c::Send "{Esc}" ;alt+c 触发 esc
!a::Send "{Insert}" ;alt+a 触发 Insert
!;::Send "{AppsKey}" ;alt+;触发 RMouse
^'::Send "{BackSpace}"
!BackSpace::Send "{BackSpace}" ;alt+BackSpace 触发 BackSpace
!b::Send "{Home}" ;alt+b 触发 Home
!n::Send "{End}" ;alt+n 触发 End
!d::Send "{Delete}" ;alt+d 触发 Delete
;alt+h触发Left,alt+ctrl+h向左跳选,alt+shift+h向左单选
alt & h::
if GetKeyState("Control"){
Send "^+{Left}"
}else if GetKeyState("Shift"){
Send "+{Left}"
}else{
Send "{Left}"
}
Return
;alt+j触发Down,alt+shift+j向下跳选
alt & j::
if GetKeyState("Shift"){
Send "+{Down}"
}else{
Send "{Down}"
}
Return
;alt+k触发Up,alt+shift+k向上跳选
alt & k::
if GetKeyState("Shift"){
Send "+{Up}"
}else{
Send "{Up}"
}
Return
;alt+l触发Right,alt+ctrl+l向左跳选,alt+shift+l向左单选
alt & l::
if GetKeyState("Control"){
Send "^+{Right}"
}else if GetKeyState("Shift"){
Send "+{Right}"
}else{
Send "{Right}"
}
Return
!+b::Send "+{Home}" ;alt+shift+b 触发 shift+Home
!+n::Send "+{End}" ;alt+shift+n 触发 shift+End
^+h::Send "!{Left}" ;ctrl+shift+h 触发 alt+Left
^+j::Send "!{Down}" ;ctrl+shift+j 触发 alt+Down
^+k::Send "!{Up}" ;ctrl+shift+k 触发 alt+Up
^+l::Send "!{Right}" ;ctrl+shift+l 触发 alt+Right
!^w::Send "!{F4}" ;alt+ctrl+w 触发 alt+F4
!.::Send "{MButton}" ;alt+. 触发 鼠标中键功能
/** -------------- Windows多媒体功能 ----------------
alt+ctrl+1 声音开关, alt+ctrl+2 音量减小
alt+ctrl+3 音量增加
---------------------------------------------- **/
!^1::Send "{Volume_Mute}"
!^2::Send "{Volume_Down}"
!^3::Send "{Volume_Up}"
以上脚本适合拥有AHK客户端的朋友使用,没有客户端的朋友可以下载打包好的exe程序。
exe文件毒盘地址:https://pan.baidu.com/s/1EFHEjOpe0ViBunjfPOPBPA 点击下载
提取码:4w8y
二、关于AHK的编译和开机运行问题
2.1 AHK2EXE编译器的使用
根据官网的介绍,AHK V2 Alpha中并不集成AHK2EXE编译器。需要从V1安装(解压)路径下的子文件夹Compiler中复制AHK2EXE到V2 Alpha对应的路径下。简单使用方法:
1、选择源脚本文件路径
2、选择输出exe路径
3、选择图标ico路径(默认即ahk的图标)
4、选择编译版本(32bit,64bit)
5、选择压缩方式(可忽略,未测试)官方Github中有插件
2.2 关于ahk脚本或exe程序的开机运行
开机运行的方式有4种:(注意:实测前3种均无法以高权限开机运行)
方法一、添加到开机启动路径
将exe文件或exe文件的快捷方式复制到(启动)文件夹下
以win10为例:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
方法二、添加系统服务
将程序添加到系统服务,开启自动开启即可
添加服务命令:sc create 服务名称 binPath= 路径 start= auto
添加成功后可到系统服务管理中查看管理
例如,将FlashFXP加入到系统服务中。(FlashFXP安装在D:\ProgramFiles\FlashFXP文件夹)。
sc create FlashFXP binPath= D:\Program Files\FlashFXP\FlashFXP.exe start= auto
我们要删除FlashFXP这个服务的话,只需要执行一下命令就可以了。
sc delete FlashFXP
方法三:注册表方式
1.注册表方式
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
新建字符串值,值自定义,双击新建的字符串项,数值为需要运行的路径如:D:\Win\AutoHotkey\Action\KeySettings.exe
2.注册表结合bat脚本
先写一个bat脚本,执行你的exe文件:(新建记事本,复制以下代码,保存,修改后缀为bat)
@echo off
start exe路径
开始→运行→“regdeit”,打开路径HKEY_LOCAL_MACHINE – SOFTWARE – Microsoft – Windows – CurrentVersion – Run
新建字符串值,数值名称自己定义,数值数据填bat路径,重启即可
方法四:使用系统任务计划程序(开机以管理员身份运行)
开始→搜索(任务计划程序),操作 - 创建基本任务
1、名称和描述自定义
2、触发器选当用户登录时
3、选启动程序(添加程序或脚本路径)
4、勾选,当单击”完成“时,打开此任务属性对话框(勾选常规选项卡使用最高权限运行)
5、触发器改为登陆时,当任何用户登录时。
6、重启验证吧!