Проводник Windows запоминает ваши предыдущие варианты «Открыть с помощью ...» на основе расширения файла в следующем ключе:
HKCR\.ext\OpenWithList
В следующий раз, когда вы щелкнете правой кнопкой мыши по файлу, он найдет его и создаст список программ, которые вы ранее использовали для открытия файла определенного типа.
Скажем, он находит ключ с именем "myapp.exe". Затем он ищет приложение здесь:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Applications\myapp.exe
извлекает информацию о том, где установлено приложение. И это идет здесь:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\myapp.exe
следует за GUID, сохраненным там, чтобы узнать отображаемое имя приложения.
Чтобы добавить к веселью, основное связанное приложение также находится в списке, также все в ключе OpenWithProgIds
и все в:
HKEY_CLASSES_ROOT\*\OpenWithList
, а также соответствующие им HKEY_CURRENT_USER
аналоги.
Полученный список приложений затем становится уникальным, сортируется и отображается. При выборе файл запускается так же, как и любой другой файл, на который вы щелкаете - т.е.
C:\path\to\myapp.exe "C:\path\to\the\file.ext"