сделал свой скрипт nsis перепаковки инстолятара, все ставится замечательно, файловые ассоциации регистрируются, но есть одно "но", установленный архиватор из инсталятора скомпилированного по этому скрипту не интегрируется в контекстное меню проводника

может кто подскажет что подправить?
Код:

;Text/Registry definitions
!define PRODUCT_NAME "7-Zip File Manager"
!define PRODUCT_VERSION "9.10"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
!define BRANDING "XCV edition"
!define Publisher "http://xcv.my1.ru/"
!define URLUpdateInfo "http://www.7-zip.org/"
!define Comments "Лучший архиватор!"
;includes
!include "MUI.nsh"
!include "FileFunc.nsh"
!include "LogicLib.nsh"
SetCompressor /SOLID lzma
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "7-Zip.ico"
!define MUI_UNICON "Uninstall.ico"
!define MUI_COMPONENTSPAGE_NODESC
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "nsis.bmp"
!define MUI_WIZARDIMAGE
!define MUI_WIZARDIMAGE_BITMAP "Win.bmp"
; Welcome page
;!insertmacro MUI_PAGE_WELCOME
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "Russian"
;service macroses
!insertmacro GetOptions
!insertmacro RefreshShellIcons
;Common directives
BrandingText "${BRANDING}"
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe"
InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
;installation types
InstType "Полная"
InstType "Сокращенная"
;variables section
;ui variables
Var IconFile
Var IconFileName
;open cmaand for files related with $installdir
Var OpenCommand
;extensions related variables
Var ClassName
Var IconIndex
;custom filetype registration function
!macro RegisterExtension extenstion
;create a class for extesion
StrCpy $IconFileName "7z.dll"
StrCpy $IconFile "$INSTDIR\$IconFileName"
StrCpy $OpenCommand "$INSTDIR\7zFM.exe $\"%1$\""
StrCpy $ClassName "arhiv.${extenstion}"
WriteRegStr HKCR ".${extenstion}" "" "$ClassName"
WriteRegStr HKCR "${extenstion}" "" "$ClassName"
WriteRegStr HKCR "$ClassName" "" "arhiv: ${extenstion}"
WriteRegStr HKCR "$ClassName\shell\open" "" "Открыть в 7-Zip File Manager"
WriteRegStr HKCR "$ClassName\shell\open\command" "" "$OpenCommand"
;define icon for class
${Switch} ${extenstion}
${Case} "7z"
StrCpy $IconIndex 0
${Break}
${Case} "rar"
StrCpy $IconIndex 3
${Break}
${Case} "ace"
StrCpy $IconIndex 4
${Break}
${Case} "arj"
StrCpy $IconIndex 4
${Break}
${Case} "zip"
StrCpy $IconIndex 2
${Break}
${Case} "cab"
StrCpy $IconIndex 7
${Break}
${Default}
StrCpy $IconIndex 0
${Break}
${EndSwitch}
WriteRegStr HKCR "$ClassName\DefaultIcon" "" "$IconFile,$IconIndex"
;skipping function here
!macroend
!macro UnRegisterExtension extenstion
StrCpy $ClassName "arhiv.${extenstion}"
ReadRegStr $0 HKCR ".${extenstion}" ""
StrCmp $0 $ClassName 0 +3
DeleteRegKey HKCR ".${extenstion}"
DeleteRegKey HKCR "$ClassName"
!macroend
;=========================================================================================================================
Section "!${PRODUCT_NAME}"
SectionIn 1 2 RO
SetOutPath "$INSTDIR\"
File /r "7zip\*.*"
WriteUninstaller "$OUTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\7zFM.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${Publisher}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "${URLUpdateInfo}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Comments" "${Comments}"
SectionEnd
;=========================================================================================================================
SectionGroup "Ярлыки"
Section "В меню Пуск"
SectionIn 1 2
IfSilent 0 +2
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\7zFM.exe"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
SectionEnd
Section /o "На рабочем столе"
SectionIn 1
IfSilent 0 +2
SetShellVarContext all
CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\7zFM.exe"
SectionEnd
Section /o "В панели быстрого запуска"
SectionIn 1
IfSilent 0 +2
SetShellVarContext all
CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\7zFM.exe"
SectionEnd
SectionGroupEnd
;=========================================================================================================================
SectionGroup "Ассоциации файлов"
Section "7z"
SectionIn 1 2
!insertmacro RegisterExtension "7z"
SectionEnd
Section /o "zip"
SectionIn 1
!insertmacro RegisterExtension "zip"
SectionEnd
Section "rar"
SectionIn 1 2
!insertmacro RegisterExtension "rar"
SectionEnd
Section "ace"
SectionIn 1 2
!insertmacro RegisterExtension "ace"
SectionEnd
Section "arj"
SectionIn 1 2
!insertmacro RegisterExtension "arj"
SectionEnd
Section "cab"
SectionIn 1 2
!insertmacro RegisterExtension "cab"
SectionEnd
SectionGroupEnd
;=========================================================================================================================
Section "-PostinstallProfileProcessing"
SectionIn 1 2
${RefreshShellIcons}
RegDLL "$INSTDIR\7-zip.dll"
SectionEnd
;=========================================================================================================================
Section Uninstall
UnRegDLL "$INSTDIR\7-zip.dll"
RMDir /r "$INSTDIR\"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
Delete "$DESKTOP\${PRODUCT_NAME}.LNK"
Delete "$QUICKLAUNCH\${PRODUCT_NAME}.LNK"
${RefreshShellIcons}
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
!insertmacro UnRegisterExtension "7z"
!insertmacro UnRegisterExtension "zip"
!insertmacro UnRegisterExtension "rar"
!insertmacro UnRegisterExtension "ace"
!insertmacro UnRegisterExtension "arj"
!insertmacro UnRegisterExtension "cab"
DeleteRegKey HKCU "Software\7-ZIP"
DeleteRegKey HKLM "Software\7-Zip"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
SetAutoClose true
SectionEnd
PS: и еще не работает
Цитата:
!define MUI_WIZARDIMAGE
!define MUI_WIZARDIMAGE_BITMAP "Win.bmp"
|
Заранее благодарен за помощь...