У меня есть приложение C#, которое загружает файл и должно всегда показывать диалог «Открыть с», независимо от того, является ли расширение известным расширением или нет.C# открыть файл всегда показывать диалог «Открыть с»
Я попытался
global::System.Diagnostics.Process.Start("rundll32.exe",
string.Format("shell32.dll,OpenAs_RunDLL \"{0}\"", filename));
, но, когда я пытаюсь открыть файл .png, «Открыть с помощью» диалог не показывает, и файл будет открыт с моим зрителем изображения по умолчанию.
Пользователь должен иметь возможность выбрать приложение (например, возможно, он хочет отредактировать файл, а не просматривать его). Есть ли способ заставить Vista показать открытое диалоговое окно, чтобы пользователь мог выбрать?
Я тоже пробовал это решение, но он дает еще худшие результаты на Vista ... У XP нет такой проблемы. – rekna
с использованием системы; с использованием System.Diagnostics; с использованием System.IO; public static void ShowOpenWithDialog (строка) { var args = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.System), "shell32.dll"); args + = ", OpenAs_RunDLL" + путь; Process.Start ("rundll32.exe", args); } Этот код, похоже, работает на Win8 и Win7, может ли кто-нибудь подтвердить на Vista и XP – rekna