如题,这种使用方法是我在和键盘上的媒体键较劲时候摸索出来的,权当抛砖引玉,如有谬误之处,欢迎大佬们不吝赐教。
能实现快捷键组合的生产力工具已经相当多了,但是相对一部分需要驻留后台持续监听键盘,而我最初的需求非常简单──把樱桃KC1000右上角那4个按键(3个多媒体键,1个休眠键)改成音量+/-/静音,无论使用什么第三方工具都有的太“重”了;了解到Scancode Map这个注册表项就尝试修改,直到了解到此方法对于USB键盘的部分多媒体键无效……好在后来知道了还有另一个注册表项可以修改媒体键行为(可以使用Shellecute和Association而非简单的键位替换),才使得下面的实践成为可能。
根据个人需要,写了下面两个脚本:
Launch_Keys.ahk
; 强制使用单例,避免脚本重复运行
#SingleInstance force
; 持续运行脚本
Persistent
; 按下 ESC 键退出脚本
Esc::
{
ExitApp
}
Down::Send "{Volume_Down}" ; 按下方向下键发送 Volume_Down 按键
Up::Send "{Volume_Up}" ; 按下方向上键发送 Volume_Up 按键
Left::Send "{Media_Prev}" ; 按下方向左键发送 Media_Prev 按键
Right::Send "{Media_Next}" ; 按下方向右键发送 Media_Next 按键
RShift::Send "{Volume_Mute}" ; 按下右 Shift 键发送 Volume_Mute 按键
Space::Send "{Media_Play_Pause}" ; 按下空格键发送 Media_Play_Pause 按键
Media_Keys.ahk
; 强制使用单例,避免脚本重复运行
#SingleInstance force
; 持续运行脚本
Persistent
; 按下 ESC 键退出脚本
Esc::
{
ExitApp
}
; 添加快捷打开功能
c::Run '"C:\Windows\System32\cmd.exe"'
f::Run '"C:\Program Files\FileZilla FTP Client\filezilla.exe"'
g::Run "https://www.google.com.hk"
j::Run '"C:\Program Files\Joplin\Joplin.exe"'
n::Run 'shell:AppsFolder\19282JackieLiu.Notepads-Beta_echhpq9pdbte8!App'
p::Run '"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"'
t::Run 'shell:AppsFolder\Crystalnix.Termius_0m0t0j9spf6x8!Crystalnix.Termius'
v::Run '"C:\Users\me\AppData\Local\Programs\Microsoft VS Code\Code.exe"'
就如同脚本的名字,分别实现了媒体控制键和程序快速启动键,然后使用Ahk2exe工具就能生成对应的Self-contained的可执行文件,此时再使用KeybMap工具添加到注册表即可,如下图
至此就完成了所有配置,此时已经可以卸载上述工具,重启系统或者注销重新登录后即可生效。
当按下对应的媒体键后,Windows会启动响应的脚本可执行文件来实现脚本功能,因为监听和唤起的工作留给了系统,所有并不需要第三方软件常驻后台就能实现快捷键组合。
顺便一提,AutoHotKey不仅易用而且强大,上述脚本稍加修改,即可实现组合键、鼠标/控制器指令、不同窗口不同行为、流程自动化等;同时此思考还可以应用到鼠标侧键或是其他外设,只要驱动程序提供了执行exe的入口即可。
前后花了三个小时实现了预期目标,脚本可能存在不尽人意之处,欢迎大佬们提出修改意见。
参考资料:
那按键的原本的功能呢?? 建议换带媒体键的键盘,现在主流的各种音乐 视频播放器都能全局窗口状态识别键盘上的媒体键,而且好像他们键盘厂商有沟通,几个媒体键的位置都是一样的。
笛声 07-15
这篇文章假设的前提就是键盘上有不需要的媒体键,想更换成其他媒体键,不过解决方案确实不太优雅,只作为一种供参考的思路;媒体键按下后会被操作系统识别并发送相应的指令,一般来说遵循标准的播放器都会识别;而位置的设计我觉得更像是一种约定俗成,并且感觉从播放器物理按键开始,其顺序就是 上一曲/播放(暂停)/下一曲。
alpacabro 07-15 回复 @笛声
AutoHotkey确实很强大
1900 04-07
确实如此,之后再简单研究一下,感觉可以写带GUI的办公自动化小工具
alpacabro 04-07 回复 @1900