Как вызвать диалог «Windows не может открыть этот файл»? - PullRequest
5 голосов
/ 19 мая 2009

Мои пользователи могут прикреплять документы к различным объектам в приложении. Конечно, если пользователь A присоединяет файл .TIFF, пользователь B может не иметь средства просмотра для этого типа файла.

Так что я хотел бы иметь возможность вызвать этот диалог:

альтернативный текст http://www.angryhacker.com/toys/cannotopen.png

Мое приложение - C # с VS2005.
В настоящее время я делаю Process.Start и передаю имя файла. Если ассоциация не найдена, выдается исключение.

Ответы [ 2 ]

13 голосов
/ 30 октября 2009
Process pr = new Process();
pr.StartInfo.FileName = fileTempPath;
pr.StartInfo.ErrorDialog = true; // important
pr.Start();
7 голосов
/ 19 мая 2009

Это должно сделать это:

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "rundll32.exe";
p.StartInfo.Arguments = "shell32.dll,OpenAs_RunDLL " + yourFileFullnameHere;

p.Start();
...