2016-11-30 3 views
5

Как я могу запустить exe-файл с кодом C#? Так что у меня это:Запуск файла .exe без указания пути C#

Process.Start(@"C:\Program Files (x86)\Photoshop\Photoshop.exe"); 

Но путь может отличаться в других машинах. Итак, есть ли какие-либо идеи для запуска .exe по-другому?

Спасибо!

+0

Вы можете избежать hardcoding пути к директории Program Files, но это все еще не решит проблему. Возможно, я установил Photoshop в другую директорию (как и у меня), или, возможно, у меня не было Photoshop. –

+2

Сканирование реестра для пути установки Photoshop. – Abion47

+0

@ Abion47 Не все программы хранят свой установочный каталог в реестре – BradleyDotNET

ответ

7

Я нашел решение.

Activator.CreateInstance(Type.GetTypeFromProgID("Photoshop.Application")); 
1

Нет, вы не можете запустить exe-файл, не зная его местоположения.

«исключение», если исполняемый файл каталога в переменной PATH среды, поэтому:

Process.Start("notepad.exe"); 

работы.

+0

Хотя это технически верно, есть и другие способы получить путь, помимо жесткого кодирования. – Abion47

+0

@ Abion47 Конечно, есть специальные классы папок и т. Д., Но это не проходит мимо основной проблемы запуска exe независимо от того, где он находится. – BradleyDotNET

0

Если я вас правильно понял, исполняемый в вашей досягаемости, так что просто положить его в каталоге проекта и не указываем путь (по умолчанию это относительный путь):

Process.Start("Photoshop.exe"); 
+0

Это кажется очень маловероятным, если он не пишет приложение, установленное рядом с фотошопом. – BradleyDotNET

+0

@ Dr.Haimovitz. Думаю, вы не можете запустить все приложение с кодом. Есть несколько приложений, таких как блокнот, которые вы можете запускать без пути! –