8

我的 .Net Windows Forms 应用程序生成一个 PDF 报告,我想向用户展示它。

不是仅仅假设客户端 PC 安装了 PDF 查看器并盲目地将 PDF 扔到操作系统上打开,有没有办法事先检查客户端上的文件关联列表,然后显示“你需要 PDF 查看器”已安装应用程序 - 这里有一些建议.. " 如果 PDF 不是注册类型,则对话框?

我发现了很多关于更改或注册文件关联的问题和答案,但我只想要一种简单的方法来查询列表,而不是更改它。

我想要一个适用于 Windows XP 及更高版本(WinXP、Vista、Win7)的解决方案。

谢谢你的帮助

4

2 回答 2

9

最好不要直接使用注册表,而是依赖 Windows API。这是提供 .NET 解决方案的 SO 链接:如何根据扩展名获取文件类型信息?(不是 MIME)在 C#

于 2011-05-22T09:47:31.263 回答
0

我发现注册表中有一个 .pdf 键,也许它可以帮助你:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.pdf]
"Content Type"="application/pdf"
@="AcroExch.Document"

[HKEY_CLASSES_ROOT\.pdf\OpenWithList]
@=""

[HKEY_CLASSES_ROOT\.pdf\OpenWithList\AcroRd32.exe]
@=""

[HKEY_CLASSES_ROOT\.pdf\ShellEx]

[HKEY_CLASSES_ROOT\.pdf\ShellEx\{8895b1c6-b41f-4c1c-a562-0d564250836f}]
@="{DC6EFB56-9CFA-464D-8880-44885D7DC193}"
于 2011-05-22T09:24:56.123 回答