ваш самый большой ключ к цели и местоположению находится в "большом типе", т. е. именах соответствующих ульев: HKLM и HKCU
ассоциации файлов устанавливаются в обоих ульях и имеют два различных назначения:
как следует из названия, записи реестра HKCU задают сопоставления файлов для текущего пользователя и переопределяют соответствующие параметры типа файлов в HKLM.
HKLM задает сопоставления файлов для локального компьютера, i.e, для всех потребителей машины (если только переопределено записями HKCU). (Для Win98 HKCR был сокращенным псевдонимом для HKLM\Software\Classes. Они не были отдельными или разными ульями. Однако это изменилось для Win XP и больше не верно. Hkcr является теперь виртуальный улей, который является результатом слияния классов программного обеспечения\\в HKLM\, в HKCU программные классы\\\, и HKCU\программное обеспечение\Microsoft\окна\CurrentVersion равное\проводник\FileExts ключи с реестра HKCU информация имеет приоритет.)
эта двухэтапная система позволяет не только один на один, но схемы сопоставления файлов "многие к одному" и "один ко многим". Например. ,htm,.html и .все типы файлов shtml могут быть установлены в ProgID=htmlfile, который, в свою очередь, может определить один браузер. OTOH, записи могут содержать подразделы OpenWithList или OpenWithProgID с несколькими записями, чтобы открыть файл из списка нескольких браузеров, редакторов или других приложений.
HKLM\Software\Classes\ и HKCU\Software\Classes работают одинаково (один из них имеет приоритет над другим).
В простейшем форма существует раздел реестра для расширения файла (например, HKCR.txt), значением по умолчанию которого является соответствующий ProgID (e.g, txtfile). В дополнение к, или вместо, по умолчанию, могут быть дополнительные программы, имена указаны на "OpenWithProgID" подраздел (например, txtfile и так), и/или дополнительное приложение имена, упомянутые в подразделах "OpenWithList" (например, в блокноте++.exe, Opera.EXE-файл, браузер Firefox.исполняемый.)
каждый ProgID определен в другом ключе в HKCR (например, HKCR\txtfile). Этот ключ содержит подразделы для указания windows, какой значок использовать и как открыть, распечатать, распечатать и т. д. связанный файл (e.,g, HKCR\txtfile\shell\open\команда). Аналогично, каждое имя приложения определяется как подраздел HKCR\Applications (например, HKEY_CLASSES_ROOT\Applications\Firefox).exe\shell\открыть\команда).
в дополнение к ключу HKCU\Software\Classes, сопоставления файлов учетных записей пользователей находятся в В HKCU\программное обеспечение\Microsoft\окна\CurrentVersion равное\Эксплорер\FileExts ключ. Эти записи предназначены не только для Проводника Windows, как было предложено, но являются дополнительным источником переопределений сопоставления файлов учетных записей пользователей. Записи создаются средствами сопоставления файлов в проводнике (Explorer \ Tools \ Folder Options \ File Types) и содержат OpenWithList и/или подраздел OpenwithProgID для каждого указанного расширения файла.
чтобы определить ассоциацию файлов, Windows сначала Записи HKCU для соответствующего расширения файла. Записи HKLM вступают в игру, только если они не найдены. (Примечание: Я не тестировал, который имеет приоритет-HKCU \ Software\Classes или HKCU\MIcrosoft\Windows\CurrentVersion\Explorer\FileExts, но я подозреваю, что это будет ключ FileExts). Аналогично, если ссылка progid или имя приложения не нашли в HKCU, в HKLM записи ищутся. (Обратите внимание, что \Applications\ entries - это просто произвольное имя, хотя они обычно идентичны фактическое имя exe-файла на диске.)
таким образом, чтобы определить ассоциацию файлов для конкретной учетной записи пользователя, создайте записи в кусте HKCU. Чтобы определить связь для всех пользователей, создайте записи в кусте HKLM (HKCR) и удалите все ссылки в кусте HKCU на этот тип файлов. Очевидно, что вам нужны соответствующие права доступа к разделам реестра.
Я не использую инструменты assoc и ftype, поскольку предпочитаю использовать RegEdit в интерактивном или пакетном режиме, но из других комментарии кажется, что они работают только на куст HKLM и бесполезны для очистки / установки ключей HKCU. Потратьте некоторое время и просмотрите вышеупомянутые ключи с помощью RegEdit, чтобы увидеть больше примеров.