window 如何为微软商城安装的应用分配启动快捷键(支持 win 快捷键)。可以借助开源的 AutoHotkey 实现
需求:为 Windows Terminal 配置快捷键
写完这篇文章后,才发现 windows ternimal 本身支持
Win+`
快捷键😨。
开始之前,先找到对应程序
在开始解决需求之前,得先获取到程序的路径,可以选择实际路径或者为其创建一个快捷方式。
-
方式一:创建快捷方式:
- 通过
win + r
运行shell:AppsFolder
可以打开应用程序列表,微软商城安装的应用都可在里面找到 - 找到需要的程序,在这里我们要找的是 “ternimal” 程序
- 将其拖到桌面或其他任意位置即可创建快捷方式。(tips: 拖拽文件时按下
alt
键可以更方便地创建快捷链接)
- 通过
-
方式二:获取实际路径
- 打开 pwsh (powershell)
- 运行
explorer $env:LOCALAPPDATA\Microsoft\WindowsApps
打开目录 - 该文件夹中的
wt.exe
就是 window ternimal 启动程序
获取实际路径的另外一种方法:
- 先打开 window ternimal
- 然后
ctrl + shift + esc
打开任务管理器- 然后在属性栏中右键勾选上“命令行”
- 此时找到 window ternimal 进程,展开它,就可以看到其执行路径了
这种方式获取到的路径不够“灵活”,所以仅做了解即可。
解决方案一:借助 win 自带的配置快捷键
为要配置快捷键的程序创建一个快捷方式,然后打开其属性(alt + 双击
),点击快捷方式,就可以看到“快捷键”选项。
这种创建方式非常简单,但也有很多局限 —— 仅支持 “ctrl + alt + 自定义的按键”。如果你习惯 ubuntu 的快捷键(ctrl + alt + t
),那么这种方式足矣。但对于我这种资深 OneNote + win 用户,我更希望能够设置 win 快捷键。
解决方案二:借助 AutoHotkey
AutoHotkey 支持通过脚本配置快捷键,这里我仅给出解决方案,不会深入介绍 AutoHotkey
步骤如下:
- 下载并安装 AutoHotkey v2.0 版本(推荐以管理员进行安装并且不要修改安装路径)
- 在你喜欢的位置上新建一个后缀名为 ahk 的文件,比如
shortcut-wt.ahk
- 打开该文件,写入下面内容。然后运行文件即可(将打开方式设置为 AutoHotkey)。
#Requires AutoHotkey v2.0
; ahk 文件中冒号 `;` 表示注释。
; windowTernimalPath := Format("{1}\Terminal.lnk", A_Desktop)
windowTernimalPath := Format("C:\Users\{1}\AppData\Local\Microsoft\WindowsApps\wt.exe", A_UserName)
#T::Run windowTernimalPath
上面代码中提供了两种路径,被注释掉的是“通过快捷方式启动”,未被注释掉的是更加通用的,无需你自行创建快捷方式,只需要你有安装 window ternimal 即可。
文件中的 #T
表示的就是 win + t
快捷键,#
字符代表 win
按键。其他一些常见的按键所对应的字符如下:
#
表示win
!
表示alt
^
表示ctrl
+
表示shift
文件中的 A_Desktop
和 A_UserName
是 ahk 提供的变量,更多变量可参考官方文档
如果你使用 vscode 进行开发,那么你可以安装 thqby.vscode-autohotkey2-lsp
插件,这样可以更方便的运行脚本。运行后状态栏中应该有对应的图标
将脚本设置为开机自启
win + r
运行shell:startup
可以打开 startup(启动)文件夹- 将刚刚创建的脚本在 startup 文件夹中添加一个快捷方式(或者直接复制整个文件也可以)
记得要将 .ahk
文件的打开方式设置为 AutoHotkey
,这样开机时才能正确运行。
(附加)关于额外触发 ctrl 按键问题
如果配置了包含 win
或 alt
的热键,可能会导致额外的模拟按键被触发(默认是 ctrl
)。通过“步骤记录器”可以看到效果:
虽然这在日常使用中并不会感知到,但如果你不喜欢,可以在脚本中修改默认触发的虚拟按键:A_MenuMaskKey := "vkE8"
#Requires AutoHotkey v2.0
A_MenuMaskKey := "vkE8"
windowTernimalPath := Format("C:\Users\{1}\AppData\Local\Microsoft\WindowsApps\wt.exe", A_UserName)
#T::Run windowTernimalPath
现在,额外的模拟按键将会是 vkE8
键码,因为这个键码暂时并未被微软使用。想要了解更多内容,请查阅官方文档对 A_MenuMaskKey 的介绍
更多推荐
所有评论(0)