Как диалоговое окно запуска Windows находит исполняемые файлы?

19

Когда я ввожу «firefox» в диалоговом окне запуска Windows (т.е. в диалоговом окне, которое появляется при нажатии windows+ R), запускается firefox.

Тем не менее, «firefox.exe» не в моем, %path%потому что, когда я набираю «firefox» cmd.exe, я получаю

'firefox' не распознается как внутренняя или внешняя команда, работающая программа или командный файл.

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

wcoenen
источник

Ответы:

29

Очевидно, что диалоговое окно запуска проверяет не только переменную среды% path%, но и раздел реестра «Путь к приложению» . Из технической статьи о диалоге запуска :

Вы можете запустить некоторые сторонние приложения, введя имя исполняемого файла в текстовом поле «Открыть» и нажав «ОК», даже если пути к этим приложениям не отображаются в переменной среды path. Причина, по которой это возможно, заключается в том, что процедура установки для некоторых приложений добавляет путь к исполняемому файлу в специальный раздел реестра, который называется «Пути к приложениям».

Соответствующие местоположения в реестре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Pathsи HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths(это последнее, специфичное для пользователя). Вы можете добавить свои собственные «пути к приложениям» с помощью regedit.

wcoenen
источник
Спасибо, я был сбит с толку тем же самым (firefox), и ваш ответ это хорошо объяснил.
Адам Плохер
Кроме того, не забудьте проверить HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths. Я также столкнулся с этой проблемой, потому что я установил Beta + Canary версии Chrome, но не мог понять, почему Canary открывал, а не стабильную версию chrome, несмотря на то, что обе версии не были включены %PATH%. Оказывается, этот ответ помог, но он был под HKCUвместо HKLM!
chunk_split
1
@chunk_split спасибо, ответ обновлен
wcoenen
2

Диалоговое окно «Выполнить» в новых версиях Windows также запускает ярлыки, найденные в меню «Пуск». Я не уверен, когда это начало работать ... это может вернуться к Windows 95, хотя я так не думаю.

Редактировать: этот ответ неверный. Правильный ответ - это раздел реестра App Paths, как указано выше.

Мирддин Эмрис
источник
Я считаю, что это была XP, но не уверен.
BBlake
1
Это не кажется правильным объяснением. В моем меню «Пуск» можно найти примеры счетчиков приложений (таких как TrueCrypt), которые я не могу запустить через диалоговое окно «Выполнить».
wcoenen
Диалоговое окно «Выполнить» остается неизменным даже в последних версиях Windows. Однако окно поиска в меню «Пуск» - другое дело. Но это скорее окно поиска, которое также запускает программы, найденные в PATH.
Джои
Если это не так, то вы должны были удалить его. Хотя, если честно, мне кажется, что это ожидаемое поведение.
287352