我这里有一个奇怪的情况。
概括:
- 创建了 Powershell 脚本
- 创建了一个文件快捷方式来运行它(目标是 powershell.exe,并将我的脚本的路径作为参数传递)
- 将键盘快捷键绑定到该文件快捷方式(使用文件快捷方式的属性对话框)
- 后来将底层 Powershell 脚本重命名
- 此后,按下键盘快捷键会导致 Windows 尝试运行不存在的脚本(Windows 尝试执行旧的脚本文件名)
- 无法将键盘快捷键重新绑定到新的文件快捷方式 - 按下该序列只会导致 Windows 尝试再次运行原始文件,而不会重新绑定到新的文件快捷方式
因此,现在我有一个全局可用的键盘快捷键,它试图执行一个不存在的脚本,并且该键盘快捷键无法绑定到新命令,也无法解除绑定。它显然是孤立的。
我尝试过的事情:
将 .ps1 文件重命名为原始名称,并更新文件快捷方式目标以指向它。按下
CTRL+ALT+S
,脚本即可正确执行。因此,很明显 Windows 在某处指向CTRL+ALT+S
原始 .ps1 文件名。删除文件快捷方式并重新创建。属性对话框中的键盘快捷键字段显示,
None
因此我尝试通过单击字段并按下来设置它,CTRL+ALT+S
但这只会导致 Windows 尝试再次运行原始文件快捷方式,但失败了。它拒绝将新文件快捷方式中的键盘快捷键设置为该序列。
还尝试了上述各种组合,但都没有任何效果,结果都类似。
所以现在我有一个绑定到的快捷键没有什么我找不到解除绑定的方法。
此绑定位于何处?
答案1
我找到了答案,所以我把这个留在这里,以防其他人遇到这种情况。这里的窍门是,我把创建的快捷方式固定到了 Windows 任务栏上,起初我并不认为这是一个相关的细节。结果发现这是一个非常重要的细节。
将快捷方式固定到任务栏时,Windows 不会创建指向您的快捷方式的指针,它实际上会将快捷方式复制到此文件夹中:
任务栏快捷方式位于:
%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
。您还可以将“快速启动”文件夹添加到任务栏作为工具栏,以重新启用快速启动功能。
该位置有该文件快捷方式的先前副本。它也是搜索已注册快捷键的路径之一。删除它就可以了。
该快捷方式只有几个可能的位置:
- 桌面(%USERPROFILE%\Desktop、%PUBLIC%\Desktop)
- 开始菜单(%APPDATA%\Microsoft\Windows\Start Menu,%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu)
- 快速启动栏
(当然是所有用户和系统范围的)
参考文献: