4

Многие приложения (особенно инструменты разработчика) требуют добавления пути к переменной среды PATH в Windows. Я знаю, что делает, но для меня это кажется низким уровнем

Нет ли альтернатив для этой и других переменных среды, вызывающих такой же эффект в Windows? Например, может ли программное обеспечение быть разработано по-другому и управлять этим с помощью другой техники?

6 ответов6

5

Параметры реестра App Paths к приложениям можно использовать для регистрации исполняемого файла приложения в масштабе всей системы или для отдельных пользователей, так же как добавление каталога приложения в PATH . Таким образом, приложение можно запустить, написав только имя исполняемого файла в командной строке.
Дополнительные сведения о App Paths см. В этой статье http://msdn.microsoft.com/en-us/library/windows/desktop/ee872121.aspx или в разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

2

Нет, не совсем.

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

Вы можете создать собственный скрипт, который будет расширять переменную PATH только путями ваших dev-tools, когда они вам нужны, в противном случае удалите их снова.

В Linux есть команда source, которую использует, например, firefox jetpack sdk, которая использует sub-bash. Не знаю, если в Windows есть что-то подобное. Это был бы другой / лучший вариант.

1

Каждое приложение может быть сделано портативным при разработке. Нет необходимости использовать переменную PATH.

Техника заключается в том, чтобы получить путь запуска приложения и использовать его для запуска других модулей приложения относительно этого пути запуска. Путь поиска dll уже включает в себя путь к приложению, поэтому он применяется для других исполняемых файлов или модулей / данных, составляющих приложение.

0

Единственное другое решение - поместить все файлы в один каталог с исполняемым файлом, чтобы путь к файлам не требовался. Или определите ярлык для исполняемого файла с именем пути по умолчанию.

Это решение используется многими приложениями именно по этой причине: избегайте добавления себя в PATH.

0

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

Да. Что бы я сделал в этом случае (если у вас есть программа для установки или еще что-то, но вы не можете получить доступ к переменной Path), просто сделайте так, чтобы бинарный файл (исполняемый файл программы) был установлен в C:\Windows или C:\Windows\System32 папка. Тогда вы сможете вызывать его из командной строки или программно, просто program , program /option или program -o , или чем-то еще.

На самом деле было бы оптимальным добавить его в системную переменную %Path% , и, если оно предназначено для Windows Vista, 7 или 8, вы можете попросить пользователя повысить привилегии и разрешить доступ к нему. Но если это как-то не вариант, то вы должны хотя бы сделать то, что я сказал выше.

-2

Это будет «Низкоуровневый», если вы реализуете LD_PRELOAD, перехватывая какой-то вызов FileOpen(), а не помещая .dll в папку программы. Некоторые реализации aufs/unionfs могут быть другим решением.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .