2014-09-02 3 views
2

В настоящее время у меня есть действующая программа, которая просто запускает отдельный .exe-файл, нажав кнопку. Установщик, который я создал, спрашивает, где они хотят установить, который по умолчанию находится в fodler C:\Program Files\PRHA.C# Process.Start Path

код, который запускает программы выглядит следующим образом

private void ivClick(object sender, RoutedEventArgs e) 
{ 
    Process.Start("C:/Program Files/PRHA/IV/IV.exe"); 
} 

Как я могу иметь Process.Start найти путь запущенного приложения, так что если пользователь решит установить в другой каталог, Process.Start все равно будет работать.

+0

Вы используете проект развертывания в Visual Studio? Или пользовательский установщик? – BCartolo

+1

* Мне интересно, как заставить Process.Start найти путь, если пользователь решит установить его в другом каталоге. * Помните, где установлена ​​программа, и используйте этот путь. –

+0

Являются ли оба EXE всегда установлены рядом друг с другом? –

ответ

1

В том случае, если вы просто хотите, чтобы получить путь запущенного приложения для запуска вторичного применения (в том же каталоге), вы должны быть в состоянии использовать:

System.Reflection.Assembly.GetExecutingAssembly().Location 

Ссылка:
http://msdn.microsoft.com/en-us/library/aa457089.aspx
http://msdn.microsoft.com/en-us/library/system.reflection.assembly.location(v=vs.110).aspx

+0

Это сработало фантастически! Спасибо! – Fuzzyketchup

0

Я думаю, что если вы сделаете это так, тогда нет необходимости, чтобы оба они находились в одном месте.

Мы можем попытаться выполнить пользовательское действие установщика IV.exe, в результате которого запись реестра устанавливается установленным путем. И какое бы приложение, которое необходимо вызвать, IV.exe, прочитает реестр и получит путь к этому конкретному ключу.

Смежные вопросы