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