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

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

      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);

или это:

      Process.Start(file);

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

Я обнаружил, что в реестре CLASSES_ROOT для изображений *.jpg, существует значение ACDSee.JPG как связанное приложение, и под этим ключом существует в оболочке-> Открыто-> Команда путь:

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

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

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

"C:\Program Files (x86)\IrfanView\i_view32.exe" "%1"

это может быть выполнено из командной строки после подкачивания %1 для имени файла, но я не мог выполнить команду от acdsee записи в командной строке :(

Таким образом, мой вопрос, как я могу настроить ProcessStartInfo объект гарантировать, что это выполнит все файлы, как это было бы в проводнике двойным щелчком, стандартах и этом DDEExec ? Есть ли что-то другое как DDEExec то, что я shoul знать? спасибо и жаль о моем EN

58
задан 17 April 2012 в 11:20

1 ответ

В .Net Core (с v2.2) это должно быть:

new Process
{
    StartInfo = new ProcessStartInfo(@"file path")
    {
        UseShellExecute = true
    }
}.Start();

Связанная проблема GitHub может быть найдена здесь

4
ответ дан 1 November 2019 в 13:50

Другие вопросы по тегам:

Похожие вопросы: