В своем программном обеспечении я использую ShellExecuteEx a>, чтобы открыть отчет, представленный в виде локального .htm файла. Иногда в некоторых системах конечных пользователей нет файловой ассоциации по умолчанию для файлов .htm.
Чтобы настроить такую ассоциацию файлов в системе до Windows 10, я бы установил следующие разделы реестра для использования IE:
Key: HKEY_CURRENT_USER\Software\Classes\htm.file\Shell\open\Command
REG_SZ name: ""
REG_SZ value: "C:\Program Files (x86)\Internet Explorer\iexplore.exe" "%1"
Key: HKEY_CURRENT_USER\Software\Classes\.htm
REG_SZ name: ""
REG_SZ value: htm.file
Key: HKEY_CURRENT_USER\Software\Classes\.htm
REG_SZ name: PerceivedType
REG_SZ value: Document
Затем я уведомляю Windows Explorer об изменении:
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);
Это работает хорошо, но как сделать то же самое для Microsoft Edge в Windows 10?
PS.:
Я не хочу использовать IE там, потому что он всегда показывает дополнительную вкладку с клячкой для переключения на Edge, что очень сбивает с толку моих конечных пользователей.
.htm. Хотя, обратите внимание, я не говорю об изменении веб-браузера по умолчанию. Речь идет об открытии локального файла с локальным путем, который имеет расширение.htm. PS. Возвращаясь к тому, что вы описали, я думаю, что антимонопольный иск в конце 90-х ничему не научил MS. ха. - person c00000fd   schedule 17.10.2018