我有 Windows 10。如果我突出显示一个文件并按“Enter”,则将使用我选择的默认程序打开该文件。
如果我按下不同的热键组(例如“Ctrl-Enter”等),我希望能够选择另一个程序来打开这些文件。
例如,在我当前的设置下,.txt 文件默认使用 Notepad 打开(即,如果我按“Enter”键),.html 文件默认使用 Google Chrome 打开,.png 文件默认使用 Windows Photo Viewer 打开。我希望能够使用 Notepad++ 打开 .txt 文件和 .html 文件,并使用 Paint 打开 .png 文件(如果我突出显示它们并按“Ctrl-Enter”之类的键)。
当然,我已经可以右键单击并滚动到我想要用来打开文件的任何程序,但由于我经常这样做,所以我想要一种更快的基于热键的方法。
是否有人知道如何设置它,是通过 Windows 内置功能还是通过某种黑客手段?
谢谢你的帮助。
答案1
Windows 本身不支持添加第二个单击热键,这意味着,您无法仅通过按下一个热键来创建使用 2 的打开操作。
不过,使用几个热键就可以做到这一点。
如果您的键盘有上下文菜单按钮(通常位于键盘右下角,靠近 alt 和 control 键),您可以按该按钮访问菜单。如果没有,则替代快捷键是CTRL- SHIFT- F10。
菜单打开后,您会看到“打开方式”的 h 下方有一条小线。这意味着按下该h
键将打开Open With
子菜单。从那里,按 Enter 和箭头键将允许您从键盘完全打开该特定文件。
有一些基于宏的程序(例如自动热键),可让您根据按键执行操作,并且某些游戏键盘还内置有宏键,可用于执行这些按键并将其映射到单个键。
或者,您可以侵入注册表,并直接在主子菜单中创建快捷方式,但同样,您无法使用单个快捷键启动此快捷方式。但是它可以是例如 CTRL-SHIFT-F10,向下箭头,向下箭头,向下箭头,输入
以下注册表破解将适用于每个文件,但只适用于一种类型。也可以针对一种类型执行此操作,但考虑到注册表中的此部分有点复杂,我认为它不适合超级用户,因为它需要太多解释才能了解所有可能的配置方式(如果操作不当,可能会破坏该文件格式)
在注册表中,转到HK_CLASSES_ROOT\*\shell
并导出此项,以便在一切停止按预期工作时您有一个备份。
创建一个新键。您为该键指定的名称将是它在上下文菜单中显示的名称。虽然您可以在字母前写一个 & 来为其加下划线,但不幸的是,Windows 不会将该键设为快捷键。要将 & 写为真实文本,请写 &&。在这个例子中,我将使用_My Command
并引用它。
下一步是可选的。如果您想添加一个 16x16 图标来表示此功能,您可以添加带有String Value
:Name
和Icon
:Data
的图标C:\path\to\file.ico
,其中此路径是 .ico 文件的任何现有位置。
现在,为您的密钥创建一个新的子密钥_My Command
,并将其命名为Command
。单击它,然后在右侧,将默认值更改为:"C:\path\to\my\program.exe" "%1"
。program.exe 也可以是 .cmd 文件或任何其他可执行文件。%1 是对您单击的文件的引用。例如,如果您使用的程序需要更多参数来加载文件,例如您要打开的文件是 c:\myfile.txt 并且命令行是:c:\test.exe -file c:\myfile.txt
,则默认值将变为:"C:\test.exe" -file "%1"
请记住,对此子项的所有更改都是即时更改,这意味着您可以切换到资源管理器,右键单击并立即查看结果。如果出于某种原因您没有正确执行此操作,资源管理器可能会崩溃。因此,在完成每个步骤之前不要进行测试。此外,在确认它有效之前不要关闭注册表编辑器。如果它不能立即工作,您需要重新启动。到目前为止,我有一个需要这样做的实例,但大多数情况下,这些更改都是即时的。
答案2
我遇到了同样的问题,我使用了一个叫做Xodo 文档在我正在学习的 PDF 文件中写笔记(使用 Wacom 手写板)和注释,但出于其他目的,我想使用 Acrobat Reader。
Xodo docs 恰好是一个新的 metro 风格的“现代”Windows 桌面应用程序 - 它不能从命令行运行,也不能以文件名作为参数来打开它。
因此,我写了一个自动热键执行以下操作的脚本
;Right Ctrl + x will open a pdf file in Xodo pdf annotation tool
>^x::
Clipboard =
Send ^c
ClipWait ;waits for the clipboard to have content
SplitPath, clipboard, name, dir, ext, name_no_ext, drive
FoundPos := RegExMatch(ext, "i)pdf$")
if(FoundPos){
Send +{F10}h{Right}x{Enter}
}
return
- 设置热键:>^x:: - 这将为右 (>) Ctrl (^) 和 (x) 设置热键
- 假设您已使用鼠标单击一次来选择文件。我们按 Ctrl+C(通过 Send ^c)来获取文件名
- 我们检查文件名是否以 pdf 结尾(不区分大小写匹配 - 在字符串末尾查找 pdf)
- 如果我们有一个 pdf 文件 - 那么我们发送 +{F10}h{Right}x{Enter}
+{F10}h{Right}x{Enter} 的作用是,它发送 Shift+F10 组合键来调出上下文菜单 - 与右键单击相同,然后它发送一个 'h' 按键来选择“打开方式”菜单项,然后发送“右光标”以打开“打开方式”菜单,然后就我而言,我需要发送一个 'x' 来选择我想要打开的应用程序 - Xodo docs,然后按 'Enter' 来实际启动该应用程序。