簡體   English   中英

在嘗試Process.Start()之前,如何以編程方式檢查文件關聯存在的文件?

[英]How can I programmatically check file that a file association exists before attempting to Process.Start() it?

我的.Net Windows窗體應用程序生成PDF報告,我想向用戶顯示該報告。

而不是假設客戶端PC安裝了PDF查看器並盲目地將PDF放在操作系統中打開, 有沒有辦法事先檢查客戶端上的文件關聯列表 ,然后顯示“ 你需要一個PDF查看器安裝的應用程序 - 這里有幾個建議.. “對話框,如果PDF不是注冊類型?

我發現了很多關於更改或注冊文件關聯的問題和答案,但我只是想要一種簡單的方法來查詢列表,而不是更改它。

我想要一個適用於Windows XP以上的解決方案(WinXP,Vista,Win7)。

謝謝你的幫助

最好不要直接使用注冊表,而是依賴Windows API。 這是一個提供.NET解決方案的SO鏈接: 如何根據擴展名獲取文件類型信息? c#中的(不是MIME)

我發現注冊表中有一個.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}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM