Какие данные и где я должен добавить в реестр Windows для правильного создания ассоциации файлов?
Я задаю этот вопрос в основном из-за некоторых старых приложений, которые я написал несколько лет назад и которые использовали Visual Studio .NET.Windows Installer Packager для создания файловых ассоциаций.Установленные мной расширения: .whr
и .encxml
.
Теперь на компьютере, на котором установлены эти приложения, возникает странная проблема , иногда - когда файл загружается либо вGoogle Chrome или Internet Explorer (особенно exe, msi или zip файл), браузер изменит расширение файла на одно из расширений, которое было установлено моим установщиком.Я не знаю, влияет ли это на другие браузеры - у этих двух есть что-то общее?Так что ... если вы скачаете, например, http://example.com/downloads/application.exe,, файл будет загружен как http://example.com.downloads/application.encxml (или .whr, какой бы он ни был выбран в данный момент) без видимой причины вообще.
Следует отметить, что ключи, на которые ссылаются ключи HKCR\.whr
и HCKR\.encxml
(Зашифрованный XML-файл и запись рабочего времени менеджера учетных записей), содержат пробелы, и когда я создавал ассоциацию в Visual Studio, я не делал этого.добавить "."спереди.Возможно, пробелы запрещены, и / или вы должны использовать префикс «.»?Код реестра кажется нормальным, но я заметил, просматривая мой реестр, что каждое другое приложение НЕ использует пробел в классе ассоциации, и при этом эта проблема не возникает с ЛЮБЫМ другим расширением файла из любого приложения, установленного на любых машинах, о которых я знаю - толькоте, что созданы установщиками VS моих приложений.Я вставил дамп реестра соответствующих ключей и значений реестра, связанных с расширениями файлов - поскольку MSI является проприетарным, я понятия не имею, все ли это, но из того, что я знаю из других приложений, это должно быть все.Я всегда задавался вопросом об этой проблеме в течение многих лет, но никогда не мог понять это.Вскоре я заменяю одно из этих старых приложений новым продуктом, поэтому на этот раз я хочу убедиться, что нет таких странных ошибок, как эта ...
Вот данные (обратите внимание, что я указал текстзначения некоторых двоичных строк с // комментарием под значением):
[HKEY_CLASSES_ROOT\.encxml]
"Content Type"="application/octet-stream"
@="Account Manager Encrypted XML File"
[HKEY_CLASSES_ROOT\.encxml\Account Manager Encrypted XML File]
[HKEY_CLASSES_ROOT\.encxml\Account Manager Encrypted XML File\ShellNew]
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File]
@="Account Manager Encrypted XML File"
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File\DefaultIcon]
@=hex(2):25,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,\
00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,49,00,6e,00,73,00,74,00,\
61,00,6c,00,6c,00,65,00,72,00,5c,00,7b,00,42,00,36,00,34,00,31,00,37,00,36,\
00,30,00,42,00,2d,00,37,00,44,00,42,00,37,00,2d,00,34,00,46,00,31,00,42,00,\
2d,00,41,00,44,00,36,00,45,00,2d,00,30,00,41,00,33,00,34,00,32,00,30,00,46,\
00,35,00,45,00,45,00,30,00,44,00,7d,00,5c,00,5f,00,36,00,46,00,45,00,46,00,\
46,00,39,00,42,00,36,00,38,00,32,00,31,00,38,00,34,00,31,00,37,00,46,00,39,\
00,38,00,46,00,35,00,34,00,39,00,2e,00,65,00,78,00,65,00,2c,00,30,00,00,00
// Product code GUID is: {F7F214E9-ED37-4AE1-B0D2-93427973E60A}, which is different from below but I probably changed it at some point for some reason
// %APPDATA%\Microsoft\Installer\{B641760B-7DB7-4F1B-AD6E-0A3420F5EE0D}\_6FEFF9B68218417F98F549.exe,0
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File\shell]
@="open"
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File\shell\open]
@="&Open"
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File\shell\open\command]
@="\"C:\\Program Files\\Petroules Enterprises\\Account Manager\\AccountManager.exe\" \"%1\""
"command"=hex(7):4c,00,29,00,25,00,59,00,63,00,73,00,67,00,2d,00,4c,00,41,00,\
28,00,30,00,64,00,66,00,34,00,36,00,75,00,5f,00,50,00,27,00,3e,00,27,00,7d,\
00,27,00,66,00,25,00,6f,00,59,00,64,00,4b,00,69,00,48,00,74,00,7a,00,35,00,\
21,00,55,00,2b,00,6c,00,68,00,54,00,20,00,22,00,25,00,31,00,22,00,00,00,00,\
00
// This is a bizarre-looking value... what's up with that?
// L)%Ycsg-LA(0df46u_P'>'}'f%oYdKiHtz5!U+lhT "%1"
[HKEY_CLASSES_ROOT\.whr]
"Content Type"="application/octet-stream"
@="Work Hours Record"
[HKEY_CLASSES_ROOT\.whr\Work Hours Record]
[HKEY_CLASSES_ROOT\.whr\Work Hours Record\ShellNew]
[HKEY_CLASSES_ROOT\Work Hours Record]
@="Work Hours Record"
[HKEY_CLASSES_ROOT\Work Hours Record\DefaultIcon]
@=hex(2):25,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,\
00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,49,00,6e,00,73,00,74,00,\
61,00,6c,00,6c,00,65,00,72,00,5c,00,7b,00,46,00,41,00,32,00,33,00,44,00,37,\
00,36,00,34,00,2d,00,46,00,36,00,34,00,39,00,2d,00,34,00,38,00,46,00,39,00,\
2d,00,38,00,44,00,30,00,42,00,2d,00,45,00,31,00,38,00,38,00,35,00,41,00,39,\
00,38,00,31,00,46,00,39,00,39,00,7d,00,5c,00,5f,00,36,00,46,00,45,00,46,00,\
46,00,39,00,42,00,36,00,38,00,32,00,31,00,38,00,34,00,31,00,37,00,46,00,39,\
00,38,00,46,00,35,00,34,00,39,00,2e,00,65,00,78,00,65,00,2c,00,30,00,00,00
// Product code GUID: {FA23D764-F649-48F9-8D0B-E1885A981F99}, same as below
// %APPDATA%\Microsoft\Installer\{FA23D764-F649-48F9-8D0B-E1885A981F99}\_6FEFF9B68218417F98F549.exe,0
[HKEY_CLASSES_ROOT\Work Hours Record\shell]
[HKEY_CLASSES_ROOT\Work Hours Record\shell\open]
@="&Open"
[HKEY_CLASSES_ROOT\Work Hours Record\shell\open\command]
@="\"C:\\Program Files\\Petroules Enterprises\\Work Hours Calculator\\WorkHoursCalculator.exe\" \"%1\""
"command"=hex(7):28,00,5d,00,56,00,49,00,79,00,55,00,7b,00,5e,00,4e,00,3f,00,\
26,00,68,00,48,00,7e,00,53,00,24,00,6e,00,31,00,36,00,59,00,3e,00,33,00,75,\
00,5f,00,7d,00,47,00,26,00,70,00,79,00,75,00,78,00,38,00,4e,00,72,00,43,00,\
6e,00,67,00,27,00,44,00,67,00,42,00,20,00,22,00,25,00,31,00,22,00,00,00,00,\
00
// Same bizarre-looking type of value as before, but different...
// (]VIyU{^N?&hH~S$n16Y>3u_}G&pyux8NrCng'DgB "%1"