Что на самом деле делает HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths?

Что на самом деле делает HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths?

Допустим (Windows 10, 64-бит) у меня есть автономный exe-файл,c:\example\example.exe-- не устанавливается с помощью установщика, не имеет ничего в реестре, только exe-файл.

Если затем я зайду в реестр и добавлю ключ «example.exe» в App Paths, а также установлю его значение по умолчанию для пути (фрагмент файла .reg):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\example.exe]
@="C:\\example\\example.exe"

Что изменилось в моей системе сейчас? Что именно я могу делать сейчас, чего не мог делать до того, как добавил это?

решение1

Похоже, это был случай RTFM; я получил ссылку надокументацияотэтот комментарий(спасибо), поэтому я решил опубликовать краткий обзор. Проверьте документы MS для получения полных подробностей.


Основная цель «App Paths», какэтот ответнамекает на то, что это альтернативное место для записей PATH для каждого приложения (в отличие от глобальных пользовательских или системных записей PATH). Также он определяет несколько деталей того, как Windows (в частности ShellExecute) обращается с программой.

Для моего конкретного примера единственное, что он делает, это указывает полный путь к "example.exe". Здесь, вероятно, есть несколько эффектов, но один заметный:

  • Теперь я могу ввести «example.exe» или даже просто «example» вПуск → Выполнитьи он запустит приложение; мне больше не нужно указывать полный путь (например, мне не нужно вводить «c:\example\example.exe»).

Однако в этом подразделе могут отображаться еще несколько значений, которые влияют на различные вещи:

  • Путьопределяет список путей, которые добавляются в переменную среды PATH при запуске приложения — полагаю, это основное назначение App Paths (отсюда и название).
  • DropTargetможет использоваться для указания пользовательского поведения при перетаскивании файлов в исполняемый файл, в отличие от стандартного преобразования имен файлов в параметры командной строки.
  • ПоддерживаемыеПротоколыуказывает, обрабатывает ли приложение определенные схемы URL.
  • UseUrlуказывает, может ли приложение работать с URL-адресами, а не только с локальными файлами, что в конечном итоге позволяет выполнять различные оптимизации, например, передавать URL-адрес интернет-ресурса в приложение, а не загружать его сначала локально и т. д.
  • Не используйте DesktopChangeRouterэто некоторая настройка, которая как-то связана с предотвращением взаимоблокировок диалога выбора файла для приложений отладчика. Это очень специфичная опция.

Вот и все: пути, пользовательское поведение перетаскивания, обработка URL и, по-видимому, произвольная гиперспецифическая настройка, связанная с отладчиком, для которой, я полагаю, они не смогли найти лучшего места (или это был старый высокоприоритетный хотфикс, а какой-то бедный разработчик MS работал на кофеине и парах). Это странная маленькая коллекция; но я уверен, что для всего там есть исторические причины.

Связанный контент