Windows 文件预览器的使用

2018-08-27 10:26:37 +08:00
 geelaw

自从 Windows Vista 开始出现的 预览处理器 是一类 Windows shell 扩展,当你在文件资源管理器中按 Alt+P,显示出来的窗格就是用来显示预览的,安装了合适的 app 后,你可以查看 PDF 的预览、Office 的预览等。Windows 自带的预览处理器可以预览文本文档、3D 模型等等。预览处理器是文件关联的一部分。

注意:图片的预览并不是预览处理器生成的,而是缩略出提供器生成的!

预览处理器有两个方面,一是开发者可以开发新的预览处理器,允许用户预览更多文件;另一方面是开发者可以使用预览处理器架构。

最著名的预览处理器的使用者是 Explorer 和 Outlook。此外,所有使用 common dialog (打开 /保存文件对话框)的程序都潜在使用了预览处理器(因为你可以在 common dialog 中唤起预览窗格)。

今天的小甜点是使用 WPF (.NET) 访问预览处理器。之所以可以用 .NET 访问预览处理器,是因为预览处理器永远是进程外的扩展(同一个进程最多加载一个版本的 CLR [这一点不完全准确] )。

MSDN 上没有明显教学如何使用预览处理器,实际上,阅读 如何提供预览处理器 的文档就自然解答了如何消费预览处理器的问题。

GitHub 地址:GeeLaw/PreviewHost

我有两篇 blog 记录该过程,以及一些常见的错误。

  1. 创建 UI
  2. 查询文件关联
  3. 使用预览处理器

通过使用自己编写的最小符合预览器规范的程序,可以检查各个预览器是否实现正确。实际检查发现 Adobe PDF 预览器、Word 预览器和 PowerPoint 预览器都有奇奇怪怪的问题:

这里应该表扬 Windows 的文本预览器和 Excel 预览器,它们的实现非常正确。

下次有空我可以写写如何在 Windows 上为其他文件提供预览(比如,我们可以做带有语法高亮的代码预览)。

1957 次点击
所在节点    分享创造
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/483535

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX