Как вы связываете расширение .exe с программой в Windows?

16

Несколько лет назад я видел, как кто-то разыгрывает кого-то, связывая .exeрасширение файла с Internet Explorer. Это заставляло Internet Explorer открываться каждый раз, когда человек хотел запустить программу.

К сожалению, я забыл, как это было сделано. Я пытался использовать Default Programs > Set Associationsинструмент панели управления, но его не было в списке .exe.

Как можно установить эту файловую ассоциацию и, что еще важнее, как ее можно сбросить?

Питер Олсон
источник
это на пакетном поиске Google поиск
RobotHumans

Ответы:

20

Выполняя подобные «шалости», недостаточно просто следовать пошаговым инструкциям или пакетным сценариям; лучше узнать что-то о том, как хранятся фактические данные - потом их будет легче восстановить.

Все ассоциации файлов хранятся в реестре, который можно редактировать с помощью regedit или reg . Оболочка ищет их под HKEY_CLASSES_ROOT, что является объединенным представлением HKEY_LOCAL_MACHINE\Software\Classes(общесистемного) и HKEY_CURRENT_USER\Software\Classes(локального пользователя).

  • [ HKEY_CLASS_ROOT]
    • [ .txt]
      • (по умолчанию) = " txtfile" - указатель на другой ключ в HKCR
    • [ txtfile]
      • (по умолчанию) = " Text Document" - текстовое описание, отображаемое в Проводнике
      • [ shell] - действия для двойного щелчка и контекстного меню
        • (по умолчанию) = (не установлено) - действие, которое нужно использовать при двойном щелчке; по умолчанию " open"
        • [ open]
          • (по умолчанию) = (не установлено) - метка, отображаемая в контекстном меню; по умолчанию " Open"
          • [ command]
            • (по умолчанию) = " %SystemRoot%\system32\NOTEPAD.EXE %1"

Для большинства расширений значение указывает на ключ типа файла под тем же HKCR; например, указывает на .HKCR\.extn\(Default).exeHKCR\exefile

(Тем не менее, в редких случаях вся информация находится непосредственно под ключом расширения и содержит описание. Однако, они кажутся очень редкими - возможно, остатки Windows 9x или 3.x ...)HKCR\.extn\(Default)

Сделайте резервные копии. reg save HKLM\Software\Classes hklm-classes.hivТакже помните, что командная строка не заботится о расширениях; Если вы попытаетесь запустить исполняемую программу, она всегда будет работать независимо от того, как она называется или с чем связано ее расширение.

user1686
источник
1
Очевидно, экспортируйте реестр, прежде чем делать какие-либо изменения, как это! :)
HaydnWVN
@HaydnWVN: об этом reg saveпозаботится (а также включает метаданные, которые можно reg exportбыло бы пропустить).
user1686
Извините, ответили до того, как было опубликовано ваше редактирование Make backups ! ;)
HaydnWVN
1
Не забывайте, что просмотр необработанного реестра - довольно сложный способ сделать что-то здесь. Переводчик Microsoft в комплекте команды имеет FTYPEи ASSOCкоманды, и список типов файлов также доступен через диалоговые окна в проводнике Windows непосредственно .
JdeBP
@JdeBP: AFAIK, Windows Vista избавилась от редактора в Проводнике - теперь он просто выбирает действие по умолчанию. (Я не копал глубже, хотя; все еще использую XP здесь.) Кроме того, графическое представление regeditдает хороший обзор.
user1686
2

Попробуй это:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.exe]
@="exefile"
"Content Type"="application/x-msdownload"

[HKEY_CLASSES_ROOT\.exe\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"
kinokijuf
источник