如何设置用于打印的默认应用程序。
测试顺序
- 打开 Windows 资源管理器(Win+e)
- 右键单击 tiff 图像
- 选择“打印”项目
- 自定义应用程序(例如 IrfanView)应该立即打印到物理打印机上
现在,打印应该通过用户可以设置的指定程序进行,以打印 tiff 文件。相反,Microsoft Windows 会将 tiff 文件发送到 Windows 照片查看器。如果将 MsPaint 设置为此文件扩展名的默认应用程序,它会正确地将 tiff 文件发送到 MsPaint(但 MsPaint 确实会打印出糟糕的图像,而不会将图像居中)。自定义应用程序应该是打印出指定文件扩展名的解决方案。如何设置?
我们尝试过但没有成功
- 打开 Windows 资源管理器(Win+e)
- 选择“打开方式”>“选择其他应用”
- 选择带有“始终使用此应用程序打开 .tiff 文件”钩的应用程序
- 好的
选择自定义应用程序(例如 IrfanView) 资源管理器 > 打印 > 转到 Windows 照片查看器而不是任何自定义应用程序。
答案1
这不仅涉及一般的扩展.tiff
(而且以它为例)。
- 检查扩展程序是否有文件描述符和感知类型:转到,检查 ←FileDescriptor ( )←ContentType ( )←PerceivedType
HKEY_CLASSES_ROOT\.tiff
的值 。
(Predetermined)
TIFImage.Document
Content Type
image/tiff
PerceivedType
image
使用print
:action
签入/修改
HKEY_CLASSES_ROOT\[FileDescriptor]\shell\[action]\command
签入/修改
HKEY_CLASSES_ROOT\SystemFileAssociations\[PerceivedType]\shell\[action]\command
签入/修改
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\[FileDescriptor]\shell\[action]\command
至于使用的值,这是很有可能的<path to your executable> "%1"
。
注意:
根据您的可执行文件/路径/环境变量的使用,您可能需要转义名称和/或参数。
有些应用程序从 dll 运行,可能带有参数。例如,我的 Win 10 中的
HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\print\command
是%SystemRoot%\System32\rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1
。我在当前系统中没有管理员权限,因此无法测试一些问题。我不确定上述各种设置的优先级。
答案2
我已经使用进程监视器来跟踪资源管理器中上下文菜单中的“打印”命令的执行情况。
我发现开始打印之前的最后一项操作是读取的注册表项
HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\print\command
,该项当前包含
%SystemRoot%\System32\rundll32.exe "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen %1
。
我已将此值替换为另一个值,然后将其关闭并重新启动explorer.exe
,然后再次执行打印,没有任何变化。尽管 Explorer 读取了新值,但它仍然启动了照片应用程序而不是指示的应用程序。
我的结论是:微软的某些 Explorer 更新已禁用此注册表项的使用。Explorer 仍会读取它但不使用它。使用照片应用程序进行打印似乎现在已硬连线到 Explorer 中。
您所能做的最多的就是通过反馈中心应用程序将此回归作为一个错误报告给 Microsoft,并希望得到修复。