Открыть файл со связанным приложением

Я хочу попросить помочь с открытием файла из приложения C # с соответствующим приложением. Я попробовал это:

<code>      ProcessStartInfo pi = new ProcessStartInfo(file);
      pi.Arguments = Path.GetFileName(file);
      pi.UseShellExecute = true;
      pi.WorkingDirectory = Path.GetDirectoryName(file);
      pi.FileName = file;
      pi.Verb = "OPEN";
      Process.Start(pi);
</code>

или это:

<code>      Process.Start(file);
</code>

где строкаfile в обоих примерах представлен полный путь к файлу, который пытается открыть. Теперь все работает хорошо, кроме(jpg) images with ACDSee app, Ассоциация Irfanview работает хорошо, документы MS Office тоже. После попытки открыть изображение jpg, связанное с acdsee, он просто запускает acdsee в области уведомлений и не открывает файл.

Я обнаружил, что в реестреCLASSES_ROOT для изображений * .jpg в качестве связанного приложения есть значение ACDSee.JPG, и под этим ключом находитсяshell->Open->Command тропинка:

<code>"C:\Program Files\ACD Systems\ACDSee\ACDSee.exe" /dde
</code>

и мне кажется, что это странно/dde это причина, почему я не могу открыть файл. Я понял, что в том же ключе регshell->Open существует некотораяDDEExec ключевая запись со значением[open("%1")]

Для просмотра Irfan или другого проверенного приложения не существует ddeexec, просто обычная команда вроде

<code>"C:\Program Files (x86)\IrfanView\i_view32.exe" "%1"
</code>

который можно запустить из командной строки после замены% 1 для имени файла, but I could not run the command from acdsee entry in the command line :(

Итак, мой вопрос, как я могу настроитьProcessStartInfo Возражатьensure that it will run all the files как это было бы в проводнике по двойному клику, стандарты и этоDDEExec из них? Есть ли что-то подобноеDDEExec что я должен знать? спасибо и извините за мой EN

Ответы на вопрос(3)

Ваш ответ на вопрос