Windows 8 file associations support

This commit is contained in:
Peter Singer
2013-04-01 12:29:56 +02:00
parent 5c6f31b89a
commit 3b5dd897ad
3 changed files with 104 additions and 114 deletions

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<DefaultAssociations>
<Association Identifier=".gif" ProgId="Imagine.gif" ApplicationName="Image &amp; Animation Viewer"/>
<Association Identifier="http" ProgId="FirefoxURL" ApplicationName="Firefox" />
<Association Identifier="https" ProgId="FirefoxURL" ApplicationName="Firefox" />
</DefaultAssociations>

View File

@@ -25,6 +25,9 @@ DefVar $OLD_VERSION$
DefVar $OLD_CREATOR_TAG$
DefVar $OLD_RELEASE$
DefVar $InstallDir$
DefVar $ProgExe$
Set $INST_SystemType$ = GetSystemType
set $INST_architecture$ = GetProductProperty("install_architecture","system specific")
@@ -40,6 +43,7 @@ Set $LogDir$ = "%SystemDrive%\tmp"
;
@@BUILDER_VARIABLES@@
; ----------------------------------------------------------------
; - Please edit the following values -
; ----------------------------------------------------------------
@@ -78,8 +82,10 @@ else
comment "Copy files"
Files_install_32 /32Bit
Files_install_config /AllNtUserProfiles
DosInAnIcon_set_config_32
DosInAnIcon_install_32
DosInAnIcon_set_config
Set $InstallDir$ = $InstallDir32$
Set $ProgExe$ = $Prog32$
DosInAnIcon_install winst /32bit
comment "Patch Registry"
Registry_install /32Bit
comment "Create shortcuts"
@@ -95,8 +101,10 @@ else
comment "Copy files"
Files_install_64 /64Bit
Files_install_config /AllNTUserProfiles
DosInAnIcon_set_config_64
DosInAnIcon_install_64
DosInAnIcon_set_config
Set $InstallDir$ = $InstallDir64$
Set $ProgExe$ = $Prog64$
DosInAnIcon_install winst /64bit
comment "Patch Registry"
Registry_install /64Bit
comment "Create shortcuts"
@@ -105,39 +113,42 @@ else
endif
[DosInAnIcon_install]
rem @echo off
If exist "%System%\defaultassociations.xml" (copy "%System%\defaultassociations.xml" "$LogDir$") ELSE (copy "%ScriptPath%\defaultassociations.xml" "$LogDir$")
SET Prog=$ProgExe$
SET Prog=%Prog:~0,-4%
SET SC=HKLM\Software\Classes
SET Extn=bmp-55 dds-60 gif-65 jpg-70 jpeg-70 pcx-75 png-80 psd-85 tga-90 tif-95 tiff-95
rem SET Extn=3fr-11 arw-11 cr2-11 crw-11 dcr-11 dng-11 erf-11 kdc-11 mos-11 mrw-11 nef-11 orf-11 pef-11 raf-11 raw-11 srw-11 sr-11 ani-11 anm-11 dib-11 rle-11 cdr-11 cdt-11 pat-11 ccx-11 cmx-11 clp-11 cur-11 dcm-11 dicom-11 dcx-11 dds-11 emf-11 exr-11 sxr-11 mxr-11 flc-11 fli-11 hdp-11 jxr-11 wdp-11 hdr-11 icl-11 ico-11 ics-11 jbg-11 jbig-11 jp2-11 jpc-11 j2k-11 jpg-11 jpe-11 jpeg-11 lbm-11 lbmp-11 iff-11 mac-11 macp-11 mbm-11 mng-11 bpm-11 pcd-11 pcx-11 pdn-11 pgm-11 pic-11 cel-11 png-11 ppm-11 psd-11 8psd-11 psp-11 ras-11 rla-11 rle-11 sgi-11 rgb-11 bw-11 spr-11 wbmp-11 wap-11 wbm-11 webp-11 wmf-11 wpg-11 xbm-11 xcf-11 xpm-11 zip-11 cbz-11 7z-11 cb7-11 arj-11 lzh-11 rar-11 cbr-11 alz-11 egg-11 tar-11 gz-11 bz2-11 iso-11 cab-11
FOR %%j IN (%Extn%) DO (
FOR /F "tokens=1,2 delims=-" %%A IN ("%%j") DO (
REG ADD %SC%\.%%A /VE /D "Imagine.%%A" /F
REG ADD %SC%\Imagine.%%A /VE /D "%%A Image" /F
REG ADD %SC%\Imagine.%%A\DefaultIcon /VE /D "$InstallDir$\%Prog%.dll,%%B" /F
REG ADD %SC%\Imagine.%%A\shell\open\command /VE /D "\"$InstallDir$\%Prog%.exe\" \"%%1\"" /F
copy "$LogDir$\defaultassociations.xml" "$LogDir$\defaultassociations.xml.old"
xml ed -d /DefaultAssociations/Association[@Identifier='.%%A'] "$LogDir$\defaultassociations.xml.old"> "$LogDir$\defaultassociations.xml"
copy "$LogDir$\defaultassociations.xml" "$LogDir$\defaultassociations.xml.old"
xml ed -s /DefaultAssociations -t elem -n Association_new -v "" -i /DefaultAssociations/Association_new -t attr -n Identifier -v .%%A -i /DefaultAssociations/Association_new -t attr -n ProgId -v Imagine.%%A -i /DefaultAssociations/Association_new -t attr -n ApplicationName -v "Image & Animation Viewer" -r "/DefaultAssociations/Association_new" -v Association "$LogDir$\defaultassociations.xml.old"> "$LogDir$\defaultassociations.xml"
)
)
rem Set Default Associations for Windows 8
move "$LogDir$\defaultassociations.xml" "%System%"
REG ADD HKLM\Software\Policies\Microsoft\Windows\System /V DefaultAssociationsConfiguration /D "%systemdrive%\windows\system32\defaultassociations.xml" /F
[Files_install_config]
copy "%ScriptPath%\Imagine.ini" "%UserProfileDir%\Anwendungsdaten\Imagine"
[DosInAnIcon_set_config]
attrib +r "$InstallDir$\Imagine.ini"
[Winbatch_install_32]
"$Install32Exe$" /S /D="$InstallDir32$"
[DosInAnIcon_install_32]
@echo off
SET SC=HKLM\Software\Classes
SET Extn=3fr-11 arw-11 cr2-11 crw-11 dcr-11 dng-11 erf-11 kdc-11 mos-11 mrw-11 nef-11 orf-11 pef-11 raf-11 raw-11 srw-11 sr-11 ani-11 anm-11 dib-11 rle-11 cdr-11 cdt-11 pat-11 ccx-11 cmx-11 clp-11 cur-11 dcm-11 dicom-11 dcx-11 dds-11 emf-11 exr-11 sxr-11 mxr-11 flc-11 fli-11 hdp-11 jxr-11 wdp-11 hdr-11 icl-11 ico-11 ics-11 jbg-11 jbig-11 jp2-11 jpc-11 j2k-11 jpg-11 jpe-11 jpeg-11 lbm-11 lbmp-11 iff-11 mac-11 macp-11 mbm-11 mng-11 bpm-11 pcd-11 pcx-11 pdn-11 pgm-11 pic-11 cel-11 png-11 ppm-11 psd-11 8psd-11 psp-11 ras-11 rla-11 rle-11 sgi-11 rgb-11 bw-11 spr-11 wbmp-11 wap-11 wbm-11 webp-11 wmf-11 wpg-11 xbm-11 xcf-11 xpm-11 zip-11 cbz-11 7z-11 cb7-11 arj-11 lzh-11 rar-11 cbr-11 alz-11 egg-11 tar-11 gz-11 bz2-11 iso-11 cab-11
FOR %%j IN (%Extn%) DO (
FOR /F "tokens=1,2 delims=-" %%A IN ("%%j") DO (
REG ADD %SC%\.%%A /VE /D "Imagine.%%A" /F
REG ADD %SC%\Imagine.%%A /VE /D "%%A Image" /F
REG ADD %SC%\Imagine.%%A\DefaultIcon /VE /D "$InstallDir32$\Imagine.dll,%%B" /F
REG ADD %SC%\Imagine.%%A\shell\open\command /VE /D "\"$InstallDir32$\Imagine.exe\" \"%%1\"" /F
)
)
SET Extn=bmp-55 dds-60 gif-65 jpg-70 jpeg-70 pcx-75 png-80 psd-85 tga-90 tif-95 tiff-95
FOR %%j IN (%Extn%) DO (
FOR /F "tokens=1,2 delims=-" %%A IN ("%%j") DO (
REG ADD %SC%\.%%A /VE /D "Imagine.%%A" /F
REG ADD %SC%\Imagine.%%A /VE /D "%%A Image" /F
REG ADD %SC%\Imagine.%%A\DefaultIcon /VE /D "$InstallDir32$\Imagine.dll,%%B" /F
REG ADD %SC%\Imagine.%%A\shell\open\command /VE /D "\"$InstallDir32$\Imagine.exe\" \"%%1\"" /F
)
)
[Files_install_32]
; copy the ini file to the InstallDir
copy "$IniCfgFile$" "$InstallDir32$"
@@ -147,38 +158,9 @@ copy "%ScriptPath%\*.ini" "$InstallDir32$"
;
copy -s "%ScriptPath%\X86\*.*" "$InstallDir32$"
[DosInAnIcon_set_config_32]
attrib +r "$InstallDir32$\Imagine.ini"
[Winbatch_install_64]
"$Install64Exe$" /S /D="$InstallDir64$"
[DosInAnIcon_install_64]
@echo off
SET SC=HKLM\Software\Classes
SET Extn=3fr-11 arw-11 cr2-11 crw-11 dcr-11 dng-11 erf-11 kdc-11 mos-11 mrw-11 nef-11 orf-11 pef-11 raf-11 raw-11 srw-11 sr-11 ani-11 anm-11 dib-11 rle-11 cdr-11 cdt-11 pat-11 ccx-11 cmx-11 clp-11 cur-11 dcm-11 dicom-11 dcx-11 dds-11 emf-11 exr-11 sxr-11 mxr-11 flc-11 fli-11 hdp-11 jxr-11 wdp-11 hdr-11 icl-11 ico-11 ics-11 jbg-11 jbig-11 jp2-11 jpc-11 j2k-11 jpg-11 jpe-11 jpeg-11 lbm-11 lbmp-11 iff-11 mac-11 macp-11 mbm-11 mng-11 bpm-11 pcd-11 pcx-11 pdn-11 pgm-11 pic-11 cel-11 png-11 ppm-11 psd-11 8psd-11 psp-11 ras-11 rla-11 rle-11 sgi-11 rgb-11 bw-11 spr-11 wbmp-11 wap-11 wbm-11 webp-11 wmf-11 wpg-11 xbm-11 xcf-11 xpm-11 zip-11 cbz-11 7z-11 cb7-11 arj-11 lzh-11 rar-11 cbr-11 alz-11 egg-11 tar-11 gz-11 bz2-11 iso-11 cab-11
FOR %%j IN (%Extn%) DO (
FOR /F "tokens=1,2 delims=-" %%A IN ("%%j") DO (
REG ADD %SC%\.%%A /VE /D "Imagine.%%A" /F
REG ADD %SC%\Imagine.%%A /VE /D "%%A Image" /F
REG ADD %SC%\Imagine.%%A\DefaultIcon /VE /D "$InstallDir64$\Imagine64.dll,%%B" /F
REG ADD %SC%\Imagine.%%A\shell\open\command /VE /D "\"$InstallDir64$\Imagine64.exe\" \"%%1\"" /F
)
)
SET Extn=bmp-55 dds-60 gif-65 jpg-70 jpeg-70 pcx-75 png-80 psd-85 tga-90 tif-95 tiff-95
FOR %%j IN (%Extn%) DO (
FOR /F "tokens=1,2 delims=-" %%A IN ("%%j") DO (
REG ADD %SC%\.%%A /VE /D "Imagine.%%A" /F
REG ADD %SC%\Imagine.%%A /VE /D "%%A Image" /F
REG ADD %SC%\Imagine.%%A\DefaultIcon /VE /D "$InstallDir64$\Imagine64.dll,%%B" /F
REG ADD %SC%\Imagine.%%A\shell\open\command /VE /D "\"$InstallDir64$\Imagine64.exe\" \"%%1\"" /F
)
)
[Files_install_64]
; copy the ini file to the InstallDir
copy "$IniCfgFile$" "$InstallDir64$"
@@ -188,9 +170,6 @@ copy "%ScriptPath%\*.ini" "$InstallDir64$"
;
copy -s "%ScriptPath%\X86_64\*.*" "$InstallDir64$"
[DosInAnIcon_set_config_64]
attrib +r "$InstallDir64$\Imagine.ini"
[Registry_install]
; Example of setting some values of an registry key:
;