Чтобы ответить на ваш вопрос: вы не можете знать путь, просто зная имя. Exe может находиться где угодно в файловой системе. Там могут быть несколько экземпляров, которые не знают друг о друге. Несколько файлов EXE, которые полностью разные, могут иметь одно и то же имя.
Вы можете взять один из нескольких подходов, чтобы обойти это, в зависимости от еха вы ориентируетесь:
- получить пользователь просматривать на ех, используя обычный файл просмотр диалогового
- поиска файла система
- увидеть, что следы целевой ехе уходит на системы (файловой системы, реестра, переменные окружения, и т.д.) и использовать эти следы, чтобы найти ехе
для либо о f эти параметры сохраняют результат, поэтому вам не придется выполнять его снова, когда ваше приложение будет запущено в следующий раз.
Поиск в файловой системе может занять некоторое время, вы не можете найти exe (в зависимости от уровня пользователя, на котором работает приложение), и вы можете получить ложные срабатывания, особенно если приложение называется чем-то немым, как setup .exe.
Получение пользователя для поиска exe при первом запуске, возможно, является самым надежным способом его обнаружения, но тогда вам нужно решить, что делать, если ваше приложение работает, но целевой exe больше не находится в указанном месте , или пользователь выбрал неверный exe.
Если у вас есть контроль над App B (т. Е. Это ваш продукт), вы можете подумать о добавлении некоторой информации в известное место в реестре, когда приложение B будет установлено, чтобы приложение A могло легко найти его. Вы все равно должны иметь план B, хотя в случае отсутствия информации.
Не можете ли вы поместить путь к B в настройке конфигурации для приложения A? – Amy 2010-12-01 01:36:14
Это будет работать, было бы более чистое решение? и чище я имею в виду то, что не потребует изменений в приложении A, если изменяется местоположение приложения B. Спасибо за комментарий. – dnndeveloper 2010-12-01 01:44:53
Ввод пути в настройке конфигурации не требует модификации приложения A при перемещении приложения B. Все, что вам нужно сделать, это изменить файл ApplicationA.exe.config. Никакой перекомпиляции не потребуется. – 2010-12-01 01:50:47