Хамик
Старожил
Как прописать в скрипте
интеграцию как на скрине. Какие пути реестра? И как прописать ассоциацию?
Вот пример с nsis:

Вот пример с 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
Последнее редактирование: