1
我有一個c#應用程序,它下載一個文件,並且應該總是顯示「打開方式」對話框,而不管該擴展名是否是已知的擴展名。c#打開的文件總是顯示「Open With」對話框
我試圖
global::System.Diagnostics.Process.Start("rundll32.exe",
string.Format("shell32.dll,OpenAs_RunDLL \"{0}\"", filename));
,但是,當我嘗試打開一個.png文件,「打開方式」對話框不顯示和文件被用我的默認圖像查看器中打開。
用戶應該能夠選擇一個應用程序(例如,也許他想編輯文件而不是查看它)。有沒有辦法強制Vista顯示打開對話框,所以用戶可以選擇?
我也試過這個解決方案,但它在Vista上給出的結果更糟...... XP似乎沒有這個問題。使用系統的 – rekna
; using System.Diagnostics; using System.IO; public static void ShowOpenWithDialog(string path){var_args = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System),「shell32.dll」); args + =「,OpenAs_RunDLL」+ path; Process.Start(「rundll32.exe」,args); }這段代碼似乎可以在Win8和Win7上運行,任何人都可以在Vista和XP上進行確認 – rekna