在尝试 Process.Start() 之前,如何以编程方式检查文件是否存在文件关联?

发布于 2024-11-08 22:46:58 字数 342 浏览 5 评论 0原文

我的 .Net Windows 窗体应用程序生成一个 PDF 报告,我想将其显示给用户。

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

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

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

感谢您的帮助

My .Net Windows Forms application generates a PDF report, which I want to show to the user.

Instead of just assuming the client PC has a PDF viewer installed and blindly throwing the PDF at the Operating System to open, is there a way to check against the list of file associations on the client beforehand, then show a "you need a PDF viewer application installed - here's a couple of suggestions.." dialog if PDF isn't a registered type?

I've found a lot of questions and answers about changing or registering file associations, but I just want an easy way to query the list, not change it.

I'd like a solution that works on Windows XP onwards (WinXP, Vista, Win7).

Thanks for your help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

猫九 2024-11-15 22:46:58

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

It's better not use the registry directly but rely on the Windows API instead. Here is a link on SO that gives a .NET solution: How do I get File Type Information based on extension? (not MIME) in c#

冷清清 2024-11-15 22:46:58

我发现注册表中有一个.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}"

I found there is a .pdf key in the registry, maybe it can help you:

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}"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文