我经常使用 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
,并且用户可以将其设置为默认包。
这里没有提到,但在删除包时要小心;应该有另一个脚本可以删除发布时添加的条目。
希望这可以帮助。