在 Windows 10 中编辑“打开方式”菜单

在 Windows 10 中编辑“打开方式”菜单

我经常使用 PDF Split & Merge(PDF SAM),但不想将其设置为默认的 PDF 处理程序。

当我右键单击 PDF 并选择打开用,这些是我给出的选项。要选择 PDF SAM,我必须单击选择其他应用并在那里选择 PDF SAM。

在此处输入图片描述

我希望 PDF SAM 直接位于打开用菜单。

我已查看了这些问题以寻求帮助:

我已经修改了注册表,将 PDF SAM 设置为 OpenWithList 中的第二个选项:

在此处输入图片描述

但这似乎并没有真正改变任何事情。

如果 Chrome、Edge 和 Waterfox 没有出现在该程序列表中,我会很高兴打开用菜单,我认为这将释放足够的空间使 PDF SAM 升级到主列表,但只有 Waterfox 显示在注册表中的 OpenWithList 中,删除它似乎没有任何区别。

更新 1

按照评论中链接的问题中的建议(在 Windows 10 中手动添加要打开的程序)我尝试了 DefaultProgramEditor 但彻底失败了。

然后我打开注册表到 HKCR.pdf\OpenWithProgids 并从那里删除了 Waterfox 条目,这确实将 Waterfox 从打开用列表,但没有将 PDFSAM 添加到主列表中:

注册表:
在此处输入图片描述

使用菜单打开:
在此处输入图片描述

因此,我们已经知道如何从主列表中删除不需要的条目,但不知道如何向其中添加想要的条目。

我还发现了类似的问题:奇怪的打开方式(与注册表不一致)

并检查以确保 PDF SAM 具有答案所建议的两个条目,并且确实如此:
在此处输入图片描述

更新 2

将 Windows 10 升级到版本 1809 后不久,我注意到 PDF SAM 现在显示在“打开方式”菜单中。

我尚未测试以确认 Microsoft 是否已解决此问题或是否有其他问题。一旦我确认了这一点,我就会写一个答案。

答案1

对于仍然有此问题的人来说,解决方案是

\HKEY_CLASSES_ROOT\Applications\"ProgramName.exe"\SupportedTypes

并添加一个包含要打开的格式的新字符串,例如“.mp4”

答案2

这里只需添加一些注释 - 在尝试将 MuPDF 添加到 .pdf 文件的打开方式列表中时遇到问题;但是,该程序并未“安装”,我只是将二进制文件复制到了C:\bin

这是我所做的(通过打开方式/选择其他应用程序/更多应用程序/在此电脑上查找其他应用程序/(查找并选择 mupdf.exe)打开多次后):

  • 检查过Computer\HKEY_CLASSES_ROOT\.pdf\OpenWithProgids- 它有一个名为MuPDF
  • 检查过Computer\HKEY_CLASSES_ROOT\Applications-它有一个条目mupdf.exe,即:Computer\HKEY_CLASSES_ROOT\Applications\mupdf.exe
  • SupportedTypes在下面添加了一个键(“文件夹”)Computer\HKEY_CLASSES_ROOT\Applications\mupdf.exe- 然后为该键添加了一个新的“字符串值”,我将其重命名.pdf(并将其值留空)
  • 返回Computer\HKEY_CLASSES_ROOT\.pdf\OpenWithProgids- 将MuPDF键重命名为mupdf.exe
  • 已修改Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\OpenWithList,因此mupdf.exe第一个条目的值(名为的键a
  • 无需重启即可重启 Windows 10(从任务管理器重新启动 Windows 资源管理器) - 尚无任何结果
  • 检查Computer\HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache- 仅有名为 的键C:\bin\mupdf.exe.FriendlyAppName
  • 还添加了:C:\bin\mupdf.exe.ApplicationCompany在 下Computer\HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache,其值为mupdf

...此时,mupdf.exe 出现在“打开方式”列表的最后,无需重新启动 Windows 资源管理器 - 因此,问题解决了。

答案3

当我无法将 Nitro Pro 添加到 *.pdf 文件的“打开方式”上下文菜单时,我也遇到了同样的问题。这是在 Win7 上,但看起来 MS 对该功能的方法在两个操作系统之间没有改变。

尝试了网上找到的各种建议,我也给了 NirSoft 的打开视图一枪。(见http://www.nirsoft.net/utils/open_with_view.html) 此工具列出了“Windows 的‘打开方式’对话框中的所有可用应用程序”。果然,它还列出了 Nitro Pro,但我开始怀疑,因为该工具的默认图标未显示在概览屏幕中,而其他所有程序都显示。接下来仔细检查应用程序的路径(这是同一概览中的另一列),我发现它列出的是旧路径,而不是当前路径。(我曾经更改过路径中的文件夹名称,但很惊讶地发现它又出现在此概览中)

使用另一个 NirSoft 工具,MUI 缓存视图(看http://www.nirsoft.net/utils/muicache_view.html),允许“查看和编辑系统上所有 MuiCache 项目的列表”,我发现 MUIcache 包含 Nitro Pro 的几个值。不仅是最新的(也是正确的)值:不知何故,过时的名称也适用。显然,这个错误/过时的值是其他应用程序遇到的第一个并保留的值,这可以解释程序的异常行为。

立刻打开视图正确显示 Nitro Pro(即正确的路径,也反映在显示的工具图标上),我能够按照已经指示的步骤将其添加到“打开方式”列表中:右键单击 pdf 文件 >> 打开方式 >> 选择其他应用程序(或 Win7 中的“选择其他程序...”)。接下来浏览到正确的位置,选择可执行文件,然后单击“打开”按钮。

我并不是说 OP 的情况也一样,因为“打开方式”菜单中的几个元素似乎表现得很奇怪(例如,参见这篇其他帖子奇怪的打开方式(与注册表不一致)OP 提到过,但也不排除这种情况。NirSoft 工具是免费软件且可移植,因此 OP 可以轻松快速地尝试上述方法。

答案4

对于通过 APP-V 5x 部署应用程序时仍然遇到相同问题的用户:

我成功地使程序在Open With上下文菜单中可选(并使用默认设置)。上面的解决方案效果很好,但通常用户不想每次都使用上下文菜单,而是关联到文件类型。由于我们处于托管环境中,不会通过 SCCM 部署自动关联任何内容,因此一个小的解决方法可能是:

首先探究了一些原因,即使我们的虚拟应用程序在发布给用户后也HKCR\Applicatons\something.exe无法选择Open With。我编写了以下 PowerShell 脚本,该技巧将在以机器上下文运行的 add-package 中运行并将必要的数据放入本机注册表时完成。是的,这个脚本可以更简单、更透明,但出于测试目的,第一次尝试应该没问题:

$ConnectorScriptRootPath = Split-Path -Path ((Get-Variable MyInvocation).Value).MyCommand.Path -Parent

$ConnectorRootPath = Split-Path -Path $ConnectorScriptRootPath -Parent

$OWExecutable = """" + $ConnectorRootPath + "\Root\VFS\ProgramFilesX64\VLC\vlc.exe" + """" + " --started-from-file " + """" + "%1" + """"

New-Item -Path HKLM:\Software\Classes\Applications -Name vlc.exe –Force

New-Item -Path HKLM:\Software\Classes\Applications\vlc.exe -Name shell –Force

New-Item -Path HKLM:\Software\Classes\Applications\vlc.exe\shell -Name Open –Force

New-Item -Path HKLM:\Software\Classes\Applications\vlc.exe\shell\Open -Name Command –Force

New-ItemProperty -Path HKLM:\Software\Classes\Applications\vlc.exe -Name "FriendlyAppName" -Value "VLC Media Player" -PropertyType String -Force

Set-Item -Path HKLM:\Software\Classes\Applications\vlc.exe\shell\Open -Value "Play with VLC Media Player" -Force

Set-Item -Path HKLM:\Software\Classes\Applications\vlc.exe\shell\Open\Command  -Value $OWExecutable -Force

我将此文件放入脚本目录:

[{AppVPackageRoot}]\..\Scripts\VLC_AddPackage.ps1

排序后,在包编辑器中,我导出了清单文件,并使用 TMUrgent 解决方案中的 App-V 清单编辑器打开。在清单编辑器中,我转到scripts/machine scripts/Add-package并设置:

路径:PowerShell.exe
参数:-executionpolicy bypass [{AppVPackageRoot}]\..\Scripts\VLC_AddPackage.ps1
等待:true
超时:30

请注意AppvEnvvars必须如上所述:[{AppVPackageRoot}] 小心wait:如果脚本出错并且没有超时,那么您可能会陷入不必要的境地。

添加(和发布)包后,可以从更多应用程序中浏览它Open With,并且用户可以将其设置为默认包。

这里没有提到,但在删除包时要小心;应该有另一个脚本可以删除发布时添加的条目。

希望这可以帮助。

相关内容