Вопрос Как прописать в скрипте то что на скрине?

Хамик

Старожил
Как прописать в скрипте
интеграцию как на скрине. Какие пути реестра? И как прописать ассоциацию?
Вот пример с nsis:
Код:
;custom filetype registration function
!macro RegisterExtension extenstion
    ;create a class for extesion
        ;read/write section state
        !insertmacro ProcessSection ${extenstion}
        ;if $r0 is 0 then exit section
        StrCmp $R0 0 EndMacro 0
        ;--------------section code----------------           
       
  StrCpy $ClassName "AIMP.${extenstion}"
  StrCmp ${extenstion} "AUDIOCD" 0 noaudio
    WriteRegStr HKCR "${extenstion}" "" "$ClassName"
    DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice"
    WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice" "Progid" "$ClassName"
  noaudio:
  WriteRegStr HKCR ".${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" "" "{0041494D-5032-4472-6F70-546172676574}"
  WriteRegStr HKCR "$ClassName\shell\open" "" "Открыть в AIMP2"
  WriteRegStr HKCR "$ClassName\shell\open\command" "" "$OpenCommand"
  WriteRegStr HKCR "$ClassName\shell\open\DropTarget" "CLSID" "{0041494D-5032-4472-6F70-546172676574}"
  WriteRegStr HKCR "CLSID\{0041494D-5032-4472-6F70-546172676574}" "" "AIMP"
  WriteRegStr HKCR "CLSID\{0041494D-5032-4472-6F70-546172676574}\LocalServer32" "" "$Exe_Path"
  WriteRegStr HKCR "CLSID\{0041494D-5032-4472-6F70-546172676574}\ProgID" "" "AIMP.TDropTarget"
  WriteRegStr HKCR "AIMP.TDropTarget" "" "AIMP"
  WriteRegStr HKCR "AIMP.TDropTarget\Clsid" "" "{0041494D-5032-4472-6F70-546172676574}"
    ;define  icon for class
    ${Switch} ${extenstion}   
        ${Case}    "AAC"
            StrCpy $IconIndex 4
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Advanced Audio Codec"
            ${Break}    
   
        ${Case}    "AC3"
            StrCpy $IconIndex 4
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Dolby Digital AC-3"
            ${Break}
   
        ${Case} "ACS2"
            StrCpy $IconIndex 8
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Skin Package"
            ${Break}   
   
        ${Case} "AIF"
            StrCpy $IconIndex 4
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Apple Audio"
            ${Break}   
       
        ${Case} "AIFF"
            StrCpy $IconIndex 4
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Apple Audio"
            ${Break}   

        ${Case} "APE"
            StrCpy $IconIndex 4
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Monkey's Audio"
            ${Break}
           
        ${Case} "AUDIOCD"
            StrCpy $IconIndex 4
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Audio CD Autorun"
            ${Break}           
   
        ${Case} "CDA"
            StrCpy $IconIndex 4
            WriteRegStr HKCR "$ClassName" "" "AIMP2: CD Digital Audio"
            ${Break}   

        ${Case} "CUE"
            StrCpy $IconIndex 9
            WriteRegStr HKCR "$ClassName" "" "AIMP2: CUE Sheet"
            ${Break}           
   
        ${Case} "FLA"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Free Lossless Audio"
            StrCpy $IconIndex 6
            ${Break}   
           
        ${Case} "FLAC"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Free Lossless Audio"
            StrCpy $IconIndex 6
            ${Break}               
           
        ${Case} "IT"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Impulse Tracker Module"
            StrCpy $IconIndex 5
            ${Break}           

        ${Case} "KAR"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: MIDI Audio"
            StrCpy $IconIndex 4
            ${Break}   

        ${Case} "M3U"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: M3U Playlist"
            StrCpy $IconIndex 9               
            ${Break}
           
        ${Case} "M3U8"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: M3U (Unicoded) Playlist"
            StrCpy $IconIndex 9               
            ${Break}
           
        ${Case} "M4A"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Apple Lossless Audio Codec"
            StrCpy $IconIndex 1               
            ${Break}           
           
        ${Case} "MAC"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Monkey's Audio"
            StrCpy $IconIndex 4               
            ${Break}   

        ${Case} "MID"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: MIDI Audio"
            StrCpy $IconIndex 4               
            ${Break}   

        ${Case} "MIDI"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: MIDI Audio"
            StrCpy $IconIndex 4               
            ${Break}

        ${Case} "MO3"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Compressed Tracker Module"
            StrCpy $IconIndex 5               
            ${Break}
       
        ${Case} "MOD"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Compressed Tracker Module"
            StrCpy $IconIndex 5               
            ${Break}
           
        ${Case} "MP+"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: MusePack Audio"
            StrCpy $IconIndex 7               
            ${Break}

        ${Case} "MP1"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: MPEG Layer 1"
            StrCpy $IconIndex 1               
            ${Break}

        ${Case} "MP2"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: MPEG Layer 2"
            StrCpy $IconIndex 1               
            ${Break}   

        ${Case} "MP3"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: MPEG Layer 3"
            StrCpy $IconIndex 1               
            ${Break}

        ${Case} "MPC"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: MusePack Audio"
            StrCpy $IconIndex 7               
            ${Break}

        ${Case} "MPP"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: MusePack Audio"
            StrCpy $IconIndex 7               
            ${Break}

        ${Case} "MTM"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Tracker Module"
            StrCpy $IconIndex 5               
            ${Break}   

        ${Case} "OFR"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: OptimFROG"
            StrCpy $IconIndex 4               
            ${Break}

        ${Case} "OFS"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: OptimFROG"
            StrCpy $IconIndex 4               
            ${Break}   

        ${Case} "OGA"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Ogg Vorbis Audio"
            StrCpy $IconIndex 2               
            ${Break}   

        ${Case} "OGG"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Ogg Vorbis Audio"
            StrCpy $IconIndex 2               
            ${Break}   

        ${Case} "PLC"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: PLC Playlist"
            StrCpy $IconIndex 9               
            ${Break}

        ${Case} "PLS"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: PLS Playlist"
            StrCpy $IconIndex 9               
            ${Break}

        ${Case} "RMI"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: MIDI Audio"
            StrCpy $IconIndex 4               
            ${Break}   

        ${Case} "S3M"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Scream Tracker 3 Module"
            StrCpy $IconIndex 5               
            ${Break}

        ${Case} "SPX"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Speex"
            StrCpy $IconIndex 5               
            ${Break}   

        ${Case} "TTA"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: The True Audio"
            StrCpy $IconIndex 4           
            ${Break}

        ${Case} "UMX"
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Unreal Music File"
            StrCpy $IconIndex 5           
            ${Break}           

        ${Case} "WAV"
            StrCpy $IconIndex 0
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Windows WAVE"
            ${Break}    
       
        ${Case} "WMA"
            StrCpy $IconIndex 3
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Windows Media Audio"
            ${Break}        
           
        ${Case} "WV"
            StrCpy $IconIndex 4
            WriteRegStr HKCR "$ClassName" "" "AIMP2: WavPack"
            ${Break}

        ${Case} "XM"
            StrCpy $IconIndex 5
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Fast Tracker Module"
            ${Break}
           
        ${Default}
            StrCpy $IconIndex 4
            WriteRegStr HKCR "$ClassName" "" "AIMP2: Media File"
            ${Break}
    ${EndSwitch}
  WriteRegStr HKCR "$ClassName\DefaultIcon" "" "$IconFile,$IconIndex"   
  EndMacro:
!macroend



!macro UnRegisterExtension extenstion
  StrCpy $ClassName "AIMP.${extenstion}"
 
  StrCmp ${extenstion} "AUDIOCD" 0 +7
    ReadRegStr $0 HKCR "${extenstion}" ""
    StrCmp $0    $ClassName 0 +2
    DeleteRegKey HKCR "$ClassName"
    ReadRegStr $0 HKCR "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice" ""
    StrCmp $0    $ClassName 0 +2
    DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\${extenstion}\UserChoice"

    ReadRegStr $0 HKCR ".${extenstion}" ""
  StrCmp $0    $ClassName 0 +2
  DeleteRegKey HKCR "$ClassName"
 
  ReadRegStr $0 HKCR "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" ""
  StrCmp $0    $ClassName 0 +2
  DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice"
!macroend


;sections
Section "!${PRODUCT_NAME}" CORE
  SectionIn 1 2 3 RO
  StrCmp $gMode 1 NotgMode
  ;this is required section so don't perfom reading from inifile
  StrCpy $ProfilePath "$INSTDIR\Data\Profile"
  IfSilent 0 NotSilent
  IfFileExists $IniFile 0 NotSilent
  ReadINIStr $R0 $IniFile Advanced Directory
  StrCmp $R0 "" NotSilent 0
  StrCpy $SysDrive $WINDIR 2

  ${WordReplace} $R0 "%programfiles%" "$PROGRAMFILES" "+" $R1
  ${WordReplace} $R1 "%windir%" "$WINDIR" "+" $R0
  ${WordReplace} $R0 "%appdata%" "$APPDATA" "+" $R1
  ${WordReplace} $R1 "%systemdrive%" "$SysDrive" "+" $R0
  StrCpy $INSTDIR $R0   
  NotSilent:
  SetOutPath "$INSTDIR\"
  File /r "${pkgdir}\AIMP\Player\*.*"
    WriteUninstaller "$OUTDIR\uninst.exe"
    WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
    WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$OUTDIR\aimp2.exe"
    WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$OUTDIR\uninst.exe"
    WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
   
    NotgMode:
SectionEnd

Section "Отдельные настройки на каждого пользователя" MultiUser
    SectionIn 1 2 3
    ;read/write section state
    !insertmacro ProcessSection "MultiUser"
    ;if $r0 is 0 then exit section
    StrCmp $R0 0 EndSection 0
    ;--------------section code----------------
    StrCpy $MultiUser 1
    ;-------------------------------------------
    EndSection:
SectionEnd

;=========================================================================================================================
SectionGroup /e "Дополнения"
    Section "Скины" Skins
        SectionIn 1
        ;read/write section state
        !insertmacro ProcessSection "Skins"
        ;if $r0 is 0 then exit section
        StrCmp $R0 0 EndSection 0
        ;--------------section code----------------       
        SetOutPath "$INSTDIR\Skins"
        File "${pkgdir}\AIMP\Skins\*.*"
        ;-------------------------------------------
        EndSection:       
    SectionEnd

    Section "Иконки типов файлов" Icons
        SectionIn 1
        !insertmacro ProcessSection "Icons"
        ;if $r0 is 0 then exit section
        StrCmp $R0 0 EndSection 0
        ;--------------section code----------------           
        SetOutPath "$INSTDIR\Icons"
        File "${pkgdir}\AIMP\Icons\*.*"
        ;-------------------------------------------
        EndSection:           
    SectionEnd
SectionGroupEnd   

;=========================================================================================================================
SectionGroup /e "Ярлыки"
    Section "В меню Пуск" StartMenu
        SectionIn 1 2
        !insertmacro ProcessSection "StartMenu"
        ;if $r0 is 0 then exit section
        StrCmp $R0 0 EndSection 0
        ;--------------section code----------------       
        SetShellVarContext all
        SetOutPath "$INSTDIR"
        CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
        CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Advanced Tag Editor.lnk" "$INSTDIR\AIMP2t.exe"
        CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Converter.lnk" "$INSTDIR\AIMP2c.exe"
        CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME} Audio Recorder.lnk" "$INSTDIR\AIMP2r.exe"
        CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\Сайт ${PRODUCT_NAME}.lnk" "http://wwww.aimp.ru"
        CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\Сайт автора сборки.lnk" "http://www.winreview.ru"
        CreateShortCut  "$SMPROGRAMS\${PRODUCT_NAME}\Удалить ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe"
        ;-------------------------------------------
        EndSection:   
    SectionEnd
    Section "На рабочем столе" Desktop
        SectionIn 1
        !insertmacro ProcessSection "Desktop"
        ;if $r0 is 0 then exit section
        StrCmp $R0 0 EndSection 0       
        ;--------------section code----------------   
        SetShellVarContext all
        SetOutPath "$INSTDIR"
        CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        ;-------------------------------------------
        EndSection:   
    SectionEnd
    Section "В панели быстрого запуска" QuickLaunch
        SectionIn 1
        !insertmacro ProcessSection "QuickLaunch"
        ;if $r0 is 0 then exit section
        StrCmp $R0 0 EndSection 0       
        ;--------------section code----------------   
        SetShellVarContext all
        SetOutPath "$INSTDIR"
        CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\aimp2.exe"
        ;-------------------------------------------
        EndSection:   
    SectionEnd   
SectionGroupEnd   

;=========================================================================================================================
SectionGroup /e "Ассоциации файлов"

    Section "-SetupIconsVariables"
        StrCmp $gMode 1 NotgMode   
        ;default icon file
        StrCpy $IconFileName "aimp2.dll"
        IfSilent 0 EndSection
            IfFileExists $IniFile 0 EndSection
            ReadINIStr $R0 $IniFile Advanced IconFileName
            IfFileExists "$INSTDIR\Icons\$R0" 0 EndSection
            StrCpy $IconFileName $R0
        EndSection:
            StrCpy $IconFile "$INSTDIR\Icons\$IconFileName"
            StrCpy $OpenCommand "$INSTDIR\AIMP2.exe $\"%1$\""
            StrCpy $Exe_Path "$INSTDIR\AIMP2.exe"
        NotgMode:   
    SectionEnd
   
    Section "Контекстое меню проводника" ContextMenu
        SectionIn 1 2
        ;read/write section state
        !insertmacro ProcessSection "ContextMenu"
        ;if $r0 is 0 then exit section
        StrCmp $R0 0 EndSection 0
        ;--------------section code----------------       
        RegDLL  "$INSTDIR\System\aimp_shell.dll"
        EndSection:
    SectionEnd
   
    Section "AAC" AAC
        SectionIn 1 2
        !insertmacro RegisterExtension "AAC"
    SectionEnd
   
    Section "AC3" AC3
        SectionIn 1 2
        !insertmacro RegisterExtension "AC3"
    SectionEnd

    Section "ACS2" ACS2
        SectionIn 1 2
        !insertmacro RegisterExtension "ACS2"
    SectionEnd   

    Section "AIF" AIF
        SectionIn 1 2
        !insertmacro RegisterExtension "AIF"
    SectionEnd       
   
    Section "AIFF" AIFF
        SectionIn 1 2
        !insertmacro RegisterExtension "AIFF"
    SectionEnd   
   
    Section "APE" APE
        SectionIn 1 2
        !insertmacro RegisterExtension "APE"
    SectionEnd   
   
    Section "AUDIOCD" AUDIOCD
        SectionIn 1 2
        !insertmacro RegisterExtension "AUDIOCD"
    SectionEnd       
   
    Section "CDA" CDA
        SectionIn 1 2
        !insertmacro RegisterExtension "CDA"
    SectionEnd   
   
    Section "CUE" CUE
        SectionIn 1 2
        !insertmacro RegisterExtension "CUE"
    SectionEnd   

    Section "FLA" FLA
        SectionIn 1 2
        !insertmacro RegisterExtension "FLA"
    SectionEnd
   
    Section "FLAC" FLAC
        SectionIn 1 2
        !insertmacro RegisterExtension "FLAC"
    SectionEnd   
   
    Section "IT" IT
        SectionIn 1 2
        !insertmacro RegisterExtension "IT"
    SectionEnd

    Section "KAR" KAR
        SectionIn 1 2
        !insertmacro RegisterExtension "KAR"
    SectionEnd
   
    Section "M3U" M3U
        SectionIn 1 2
        !insertmacro RegisterExtension "M3U"
    SectionEnd   

    Section "M3U8" M3U8
        SectionIn 1 2
        !insertmacro RegisterExtension "M3U8"
    SectionEnd   

    Section "M4A" M4A
        SectionIn 1 2
        !insertmacro RegisterExtension "M4A"
    SectionEnd       
   
    Section "MAC" MAC
        SectionIn 1 2
        !insertmacro RegisterExtension "MAC"
    SectionEnd   

    Section "MID" MID
        SectionIn 1 2
        !insertmacro RegisterExtension "MID"
    SectionEnd   
   
    Section "MIDI" MIDI
        SectionIn 1 2
        !insertmacro RegisterExtension "MIDI"
    SectionEnd       

    Section "MO3" MO3
        SectionIn 1 2
        !insertmacro RegisterExtension "MO3"
    SectionEnd

    Section "MOD" MOD
        SectionIn 1 2
        !insertmacro RegisterExtension "MOD"
    SectionEnd
   
    Section "MP+" MP+
        SectionIn 1 2
        !insertmacro RegisterExtension "MP+"
    SectionEnd
   
    Section "MP1" MP1
        SectionIn 1 2
        !insertmacro RegisterExtension "MP1"
    SectionEnd   
   
    Section "MP2" MP2
        SectionIn 1 2
        !insertmacro RegisterExtension "MP2"
    SectionEnd   
   
    Section "MP3" MP3
        SectionIn 1 2
        !insertmacro RegisterExtension "MP3"
    SectionEnd   
   
    Section "MPC" MPC
        SectionIn 1 2
        !insertmacro RegisterExtension "MPC"
    SectionEnd

    Section "MPP" MPP
        SectionIn 1 2
        !insertmacro RegisterExtension "MPP"
    SectionEnd   

    Section "MTM" MTM
        SectionIn 1 2
        !insertmacro RegisterExtension "MTM"
    SectionEnd   
   
    Section "OFR" OFR
        SectionIn 1 2
        !insertmacro RegisterExtension "OFR"
    SectionEnd       

    Section "OFS" OFS
        SectionIn 1 2
        !insertmacro RegisterExtension "OFS"
    SectionEnd   
   
    Section "OGA" OGA
        SectionIn 1 2
        !insertmacro RegisterExtension "OGA"
    SectionEnd   

    Section "OGG" OGG
        SectionIn 1 2
        !insertmacro RegisterExtension "OGG"
    SectionEnd   
   
    Section "PLC" PLC
        SectionIn 1 2
        !insertmacro RegisterExtension "PLC"
    SectionEnd
   
    Section "PLS" PLS
        SectionIn 1 2
        !insertmacro RegisterExtension "PLS"
    SectionEnd   
   
    Section "RMI" RMI
        SectionIn 1 2
        !insertmacro RegisterExtension "RMI"
    SectionEnd   

    Section "S3M" S3M
        SectionIn 1 2
        !insertmacro RegisterExtension "S3M"
    SectionEnd       

    Section "SPX" SPX
        SectionIn 1 2
        !insertmacro RegisterExtension "SPX"
    SectionEnd

    Section "TTA" TTA
        SectionIn 1 2
        !insertmacro RegisterExtension "TTA"
    SectionEnd
   
    Section "UMX" UMX
        SectionIn 1 2
        !insertmacro RegisterExtension "UMX"
    SectionEnd   
   
    Section "WAV" WAV
        SectionIn 1 2
        !insertmacro RegisterExtension "WAV"
    SectionEnd   
   
    Section "WMA" WMA
        SectionIn 1 2
        !insertmacro RegisterExtension "WMA"
    SectionEnd   
   
    Section "WV" WV
        SectionIn 1 2
        !insertmacro RegisterExtension "WV"
    SectionEnd       
   
    Section "XM" XM
        SectionIn 1 2
        !insertmacro RegisterExtension "XM"
    SectionEnd
   
    Section "-RefreshIcons"
        SectionIn 1 2 3
        StrCmp $gMode 1 +2 0
        ${RefreshShellIcons}
    SectionEnd
SectionGroupEnd
 
Последнее редактирование:
Сверху