wolkow70
22-11-2011, 13:26
Я так понимаю,что XnViewShellExt.dll Должен лежать рядом с "экзшником" »
Не важно где он лежит, важно, чтобы он был зарегистрирован, а регсервер сам прописывает в CLSID реестра путь к нему. В 32-битной версии он лежит в папке ShellEx.
С офсайта XnViewShellExt.dll скачивается отдельно в архиве XnShellEx64.zip. при распаковке получается папка XnShellEx64. В батнике там прописана комманда regsvr32 "XnViewShellExt.dll" .
Хотя, у меня не через батник регистрируется, а коммандой скрипта.
Секция регистрации такая:
Section "Использовать расширенную оболочку XnView" XnViewShell
SectionIn 1 2
SetOutPath "$INSTDIR" ; - подключить директорию установки
;
${If} ${RunningX64} ; открыть логическую конструкцию, и если запущена х64
SetOutPath "$INSTDIR\XnShellEx64" ; - подключить путь
RegDLL "$INSTDIR\XnShellEx64\XnViewShellExt.dll" ; - зарегистрировать
${Else} ; - иначе, если не x64
SetOutPath "$INSTDIR\ShellEx" ; -подключить путь
RegDLL "$INSTDIR\ShellEx\XnViewShellExt.dll" ; - зарегистрировать
${EndIf} ; - закрыть логическую конструкцию
WriteRegStr HKCU "Software\XnView\ShellEx" "Language" "ru"
SectionEnd
Обратите внимание на SectionIn 1 2, то есть в режиме минимальной установки эта секция не работает, только при полной или сокращенной установке, или если секция выбрана в ручную.
На X86 все работает и регистрируется замечательно.
Попробуйте после установки посмотреть в реестре ключи:
HKLM "SOFTWARE\Classes\CLSID\{A5D35F9F-6A11-4EAA-B70B-7BB6FE32663A}"
HKLM "SOFTWARE\Classes\Interface\{FCF6C25A-4F31-497E-BAC7-284BDDD221A8}"
HKLM "SOFTWARE\Classes\TypeLib\{AE8FFFA0-3A0A-4280-BF0A-FF777B3DFC1E}"
Они должны быть созданы.
Или можно для проверки использовать программку RegDllView от NirSoft.
Не важно где он лежит, важно, чтобы он был зарегистрирован, а регсервер сам прописывает в CLSID реестра путь к нему. В 32-битной версии он лежит в папке ShellEx.
С офсайта XnViewShellExt.dll скачивается отдельно в архиве XnShellEx64.zip. при распаковке получается папка XnShellEx64. В батнике там прописана комманда regsvr32 "XnViewShellExt.dll" .
Хотя, у меня не через батник регистрируется, а коммандой скрипта.
Секция регистрации такая:
Section "Использовать расширенную оболочку XnView" XnViewShell
SectionIn 1 2
SetOutPath "$INSTDIR" ; - подключить директорию установки
;
${If} ${RunningX64} ; открыть логическую конструкцию, и если запущена х64
SetOutPath "$INSTDIR\XnShellEx64" ; - подключить путь
RegDLL "$INSTDIR\XnShellEx64\XnViewShellExt.dll" ; - зарегистрировать
${Else} ; - иначе, если не x64
SetOutPath "$INSTDIR\ShellEx" ; -подключить путь
RegDLL "$INSTDIR\ShellEx\XnViewShellExt.dll" ; - зарегистрировать
${EndIf} ; - закрыть логическую конструкцию
WriteRegStr HKCU "Software\XnView\ShellEx" "Language" "ru"
SectionEnd
Обратите внимание на SectionIn 1 2, то есть в режиме минимальной установки эта секция не работает, только при полной или сокращенной установке, или если секция выбрана в ручную.
На X86 все работает и регистрируется замечательно.
Попробуйте после установки посмотреть в реестре ключи:
HKLM "SOFTWARE\Classes\CLSID\{A5D35F9F-6A11-4EAA-B70B-7BB6FE32663A}"
HKLM "SOFTWARE\Classes\Interface\{FCF6C25A-4F31-497E-BAC7-284BDDD221A8}"
HKLM "SOFTWARE\Classes\TypeLib\{AE8FFFA0-3A0A-4280-BF0A-FF777B3DFC1E}"
Они должны быть созданы.
Или можно для проверки использовать программку RegDllView от NirSoft.