J'ai une application C#, qui télécharge un fichier, et devrait toujours afficher la boîte de dialogue Ouvrir avec, même si l'extension est une extension connue ou non.C# fichier ouvert affiche toujours le dialogue "Ouvrir avec"
J'ai essayé
global::System.Diagnostics.Process.Start("rundll32.exe",
string.Format("shell32.dll,OpenAs_RunDLL \"{0}\"", filename));
mais, lorsque je tente d'ouvrir un fichier .png, la boîte de dialogue « Ouvrir avec » ne montre pas et que le fichier est ouvert avec mon visionneuse d'image par défaut.
L'utilisateur devrait pouvoir choisir une application (par exemple, il veut peut-être éditer le fichier au lieu de le voir). Existe-t-il un moyen de forcer Vista à afficher le dialogue ouvert, afin que l'utilisateur puisse choisir?
J'ai essayé cette solution aussi, mais ça donne des résultats encore plus mauvais sur Vista ... XP ne semble pas avoir ce problème. – rekna
utilisant le système; en utilisant System.Diagnostics; en utilisant System.IO; public static void ShowOpenWithDialog (chemin de chaîne) { var args = Chemin.Combine (Environnement.GetFolderPath (Environment.SpecialFolder.System), "shell32.dll"); args + = ", OpenAs_RunDLL" + chemin; Process.Start ("rundll32.exe", arguments); } Ce code semble fonctionner sur Win8 et Win7 pourrait-on confirmer sur Vista et XP – rekna