2009-05-26 4 views
9

В Windows с использованием C#, как я могу получить путь к установке программного обеспечения (например, рассмотрите NUnit или любое другое программное обеспечение, такое как слово MS и т. Д.) из моего проекта? Также как установить переменные пути, которые мы установили в переменных среды, чтобы мы могли запускать приложение, просто указав в командной строке.Как получить путь установки приложения?

Как если бы я установил NUnit в «C: \ Program Files», я могу запустить его, указав «NUnit» в приглашении cmd, но если я установлюсь в другом месте, я не могу сделать то же самое. Мне нужно получить местоположение или путь NUnit или любое другое программное обеспечение, установленное в моей системе (с Windows XP) из моего проекта.

EDIT: Как я могу получить путь к установленной программе из реестра. HKEY_CURRENT_USER-> ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

ответ

11

Используйте класс системы и приложений. Это даст вам всю информацию.

EG: Application.ExecutablePath

Он также предоставляет методы, чтобы сделать то, что вы хотите.

Edit: Также см реестра команд чтения/записи здесь:

http://www.c-sharpcorner.com/UploadFile/sushmita_kumari/RegistryKeys102082006061720AM/RegistryKeys1.aspx?ArticleID=0ce07333-c9ab-4a6a-bc5d-44ea2523e232

+0

u означает, что я могу использовать это, чтобы получить путь к любым установленным программам из моего приложения.? – SyncMaster

+0

См. Мое редактирование (ссылка) выше. –

0

Как, если я установить NUnit в "C: \ Program Files" я могу запустить его, давая 'NUnit' в подсказке cmd, но если я установлю в другом месте, я не могу сделать то же самое.

Возможно, вы используете Windows Vista, которая может выполнять поиск в Program Files, но не будет выглядеть в других папках.

В окнах с помощью C#, как получить путь к установки программного обеспечения (для примера рассмотрим NUnit).?

Это зависит от того, как вы устанавливаете приложение. Установщик знает путь, вы можете запрограммировать установщик на запись этого пути где-то, скажем, в реестре.

Кроме того, как установить переменные пути , которые мы ставим в переменных среды , так что мы можем запустить приложение просто давая в командной строке.

How do I get and set Environment variables in C#?

+0

спасибо за эту ссылку. но мне нужно получить папку установки любого приложения, такого как MS word, firefox и т. д. – SyncMaster

+0

Единственный способ, которым я могу думать, это прочитать переменную пути среды. Разделите путь и выполните поиск во всех папках. Не должно быть задачи. Некоторый псевдокод: envPath = System.Environment.GetEnvironmentVariable ('Путь'); string [] paths = envPath.Split (':'); foreach (строка в путях) File.Exists (Path.Combine (путь, имя файла)); –

9
string appFileName = Environment.GetCommandLineArgs()[0]; 

даст вам полный путь к исполняемому файлу и

string directory = Path.GetDirectoryName(appFileName); 

извлекает каталог.

string envPath = Environment.GetEnvironmentVariable("PATH"); 
Environment.SetEnvironmentVariable(envPath + ";" + yourPath); 

редактирует переменную среды PATH для текущего процесса.

+0

это дает расположение exe моего проекта, но мне нужно получить папку установки любого приложения, такого как слово MS, firefox и т. Д. – SyncMaster

+0

Я либо полностью неправильно читаю ваш вопрос, либо вы изменили его после моего ответа .. – VVS

2

Application.StartupPath используется для установки места установки в C#.

8
Application.ExecutablePath (includes filename) 
Application.StartupPath (not includes filename) 

Это даст вам путь, по которому начинается приложение. Надеюсь, это будет путь установки.

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