C # 4.0: есть ли способ проверить, если приложение не существует в System.Diagnostics.Process.Start - PullRequest
2 голосов
/ 27 апреля 2010

Я хочу открыть файл любого типа, используя код ниже:

System.Diagnostics.Process.Start(pathFile);

Есть ли способ проверить, не существует ли системное приложение?

например: pdf, на локальной машине нет программы чтения акробатов.

Я создал попытку, но я не удовлетворен этим, я хочу имитировать поведение окон при открытии файла. Он имеет возможность поиска в Интернете / ручной поиск.

try
            {
                System.Diagnostics.Process.Start(pathFile);
            }
            catch (System.ComponentModel.Win32Exception ex)
            {

                composite.ReadingError = ex.Message;
                Console.WriteLine("error");
            }

Ответы [ 2 ]

2 голосов
/ 27 апреля 2010

Вам нужно использовать PInvoke ( FindExecutable (shell32)):

0 голосов
/ 27 апреля 2010

Если ассоциации нет, она должна выбросить Win32Exception, которую вы можете поймать.

См. Здесь: http://msdn.microsoft.com/en-us/library/53ezey2s.aspx в разделе исключений.

...