2

Например, я запускаю superuser.com через firefox с помощью этой команды:

start firefox http://superuser.com

Как "пуск" узнает, где находится мой firefox.exe? Я предполагаю, что это читает это из реестра (это не определено в моем ПУТИ), но тогда как команда запуска и реестр ОС взаимосвязаны? Какие именно реестры используются?

1 ответ1

2

Да, эта информация хранится в реестре.

Ключ

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

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

Подраздел firefox.exe имеет два значения:

(Default)    C:\Program Files\Mozilla Firefox\firefox.exe
Path         C:\Program Files\Mozilla Firefox\

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

Регистрация приложения (Windows) подробно объясняет, где Windows будет искать исполняемый файл Firefox :

Когда функция ShellExecuteEx вызывается с именем исполняемого файла в параметре lpFile , существует несколько мест, где функция ищет файл. Мы рекомендуем зарегистрировать ваше приложение в разделе реестра « Пути к приложениям» . Это избавляет приложения от необходимости изменять системную переменную среды PATH.

Файл ищется в следующих местах:

  • Текущий рабочий каталог.
  • Только каталог Windows (подкаталоги не ищутся).
  • Каталог Windows\System32 .
  • Каталоги, перечисленные в переменной среды PATH.
  • Рекомендуемые:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ Пути к приложениям

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