Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для wolkow70

Ветеран


Сообщения: 3206
Благодарности: 845

Профиль | Отправить PM | Цитировать


Уважаемый, kotkovets, почитал вашу статью про макрос. Вот, что написано:
целесообразно создавать структуру ассоциаций файлов либо в ветке реестра HKEY_LOCAL_MACHINE\Software\Classes, либо в HKEY_CURRENT_USER\Software\Classes, причем последняя имеет приоритет, и при построении представления HKEY_CLASSES_ROOT будет иметь приоритет над HKEY_LOCAL_MACHINE.

При этом, приходилось, читать в литературе, что внесение записей непосредственно в HKEY_CLASSES_ROOT приоритетно над обоими ветками..

В связи с этим возник вопрос : не лишено ли смысла вносить записи одновременно в HKLM и в HKCR, если привести макрос к такому виду (упрощенно) ?

Код: Выделить весь код
!macro RegisterExtension extenstion		
StrCpy $ClassName "KMPlayer.${extenstion}"
WriteRegStr HKCR ".${extenstion}" "" "$ClassName"
WriteRegStr HKLM "SOFTWARE\Classes\.${extenstion}" "" "$ClassName"
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid" "$ClassName"
;;
WriteRegStr HKCR "$ClassName\CLSID" "" "{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}"
WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\CLSID" "" "{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}"
;
WriteRegStr HKCR "$ClassName\shell" "" "play"
WriteRegStr HKCR "$ClassName\shell\play" "" "Воспроизвести в KMP"
WriteRegStr HKCR "$ClassName\shell\play\command" "" "$PlayCommand"
WriteRegStr HKCR "$ClassName\shell\play\DropTarget" "Clsid" "{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}"
;
WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell" "" "play"
WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\play" "" "Воспроизвести в KMP"
WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\play\command" "" "$PlayCommand"
WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\play\DropTarget" "Clsid" "{9EB4C4CB-74C2-4BE9-AA5D-8249F16020AD}"
!macroend
Я проверил на реальной установке - работает, и ассоциации удаляются макросом де-регистрации через HKCR. Но, вот правильно это или нет, мучают сомнения.

-------
Человек человеку - друг, товарищ и волк!


Последний раз редактировалось wolkow70, 06-07-2011 в 14:08.


Отправлено: 14:02, 06-07-2011 | #1297