Я хочу обратиться за помощью к открытию файла из приложения 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
причина, почему я не могу открыть файл. Я понял, что в одной и той же рег ключ оболочечной> Открыть есть некоторые DDEExec
ввод ключа со значением [open("%1")]
для просмотра Ирфан или другого зарегистрированного приложения там не ddeexec, просто нормальная команда, как
"C:\Program Files (x86)\IrfanView\i_view32.exe" "%1"
, которые можно запустить из командной строки после swaping% 1 для имени файла
, но я не мог выполнить команду записи ACDSee в командной строке :(
Так что мой вопрос, как я могу настроить ProcessStartInfo
object to убедитесь, что он будет работать со всеми файлами, как это было бы в проводнике doubleclick, стандартами и данными DDEExec
? Есть ли что-то другое, как DDEExec
, о котором я должен знать? спасибо и извините за мой EN
Похоже, он уже пробовал это с помощью 'Process.Start (file);'. –
«Итак, мой вопрос, как я могу настроить объект ProcessStartInfo, чтобы гарантировать, что он будет запускать все файлы, как это было бы в проводнике, двойным щелчком»: ответ таков. Он использовал аргументы командной строки, как бы то ни было ... но не прямую инволюцию, насколько я вижу. – Tigran
@ Тигран Марио прав, поскольку я написал, что попробовал ваше предложение в качестве второго примера ... Я хотел задать свой вопрос так, чтобы это явно не было правильным решением, поскольку jpg не открывается! – Zavael