mirror of
https://github.com/jlengrand/Ivolution.git
synced 2026-03-10 08:21:18 +00:00
Solves icons problems for x86 architectures
This commit is contained in:
@@ -1,3 +1,78 @@
|
||||
/******************************************************************************
|
||||
WORKAROUND - FixShortcut
|
||||
This snippet was developed to address an issue with Windows
|
||||
x64 incorectly redirecting the shortcuts icon from $PROGRAMFILES32
|
||||
to $PROGRAMFILES64.
|
||||
|
||||
See Forum post: http://forums.winamp.com/newreply.php?do=postreply&t=327806
|
||||
|
||||
Example:
|
||||
CreateShortcut "$SMPROGRAMS\My App\My App.lnk" "$INSTDIR\My App.exe" "" "$INSTDIR\My App.exe"
|
||||
${lnkX64IconFix} "$SMPROGRAMS\My App\My App.lnk"
|
||||
|
||||
Original Code by Anders - http://forums.winamp.com/member.php?u=70852
|
||||
******************************************************************************/
|
||||
!ifndef ___lnkX64IconFix___
|
||||
!verbose push
|
||||
!verbose 0
|
||||
|
||||
!include "LogicLib.nsh"
|
||||
!include "x64.nsh"
|
||||
|
||||
!define ___lnkX64IconFix___
|
||||
!define lnkX64IconFix `!insertmacro _lnkX64IconFix`
|
||||
!macro _lnkX64IconFix _lnkPath
|
||||
!verbose push
|
||||
!verbose 0
|
||||
${If} ${RunningX64}
|
||||
DetailPrint "WORKAROUND: 64bit OS Detected, Attempting to apply lnkX64IconFix"
|
||||
Push "${_lnkPath}"
|
||||
Call lnkX64IconFix
|
||||
${EndIf}
|
||||
!verbose pop
|
||||
!macroend
|
||||
|
||||
Function lnkX64IconFix ; _lnkPath
|
||||
Exch $5
|
||||
Push $0
|
||||
Push $1
|
||||
Push $2
|
||||
Push $3
|
||||
Push $4
|
||||
System::Call 'OLE32::CoCreateInstance(g "{00021401-0000-0000-c000-000000000046}",i 0,i 1,g "{000214ee-0000-0000-c000-000000000046}",*i.r1)i'
|
||||
${If} $1 <> 0
|
||||
System::Call '$1->0(g "{0000010b-0000-0000-C000-000000000046}",*i.r2)'
|
||||
${If} $2 <> 0
|
||||
System::Call '$2->5(w r5,i 2)i.r0'
|
||||
${If} $0 = 0
|
||||
System::Call '$1->0(g "{45e2b4ae-b1c3-11d0-b92f-00a0c90312e1}",*i.r3)i.r0'
|
||||
${If} $3 <> 0
|
||||
System::Call '$3->5(i 0xA0000007)i.r0'
|
||||
System::Call '$3->6(*i.r4)i.r0'
|
||||
${If} $0 = 0
|
||||
IntOp $4 $4 & 0xffffBFFF
|
||||
System::Call '$3->7(ir4)i.r0'
|
||||
${If} $0 = 0
|
||||
System::Call '$2->6(i0,i0)'
|
||||
DetailPrint "WORKAROUND: lnkX64IconFix Applied successfully"
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
System::Call $3->2()
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
System::Call $2->2()
|
||||
${EndIf}
|
||||
System::Call $1->2()
|
||||
${EndIf}
|
||||
Pop $4
|
||||
Pop $3
|
||||
Pop $2
|
||||
Pop $1
|
||||
Pop $0
|
||||
FunctionEnd
|
||||
!verbose pop
|
||||
!endif
|
||||
|
||||
; Script generated by the HM NIS Edit Script Wizard.
|
||||
|
||||
; HM NIS Edit Wizard helper defines
|
||||
@@ -45,7 +120,7 @@
|
||||
|
||||
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
|
||||
OutFile "dist\Ivolution_${PRODUCT_VERSION}.exe"
|
||||
InstallDir "$PROGRAMFILES\Ivolution"
|
||||
InstallDir "$PROGRAMFILES32\Ivolution"
|
||||
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
|
||||
ShowInstDetails show
|
||||
ShowUnInstDetails show
|
||||
@@ -61,7 +136,10 @@ Section "IvolutionSection" SEC01
|
||||
File "dist\Ivolutioner.exe"
|
||||
CreateDirectory "$SMPROGRAMS\Ivolution"
|
||||
CreateShortCut "$SMPROGRAMS\Ivolution\Ivolution.lnk" "$INSTDIR\Ivolutioner.exe" "" "$INSTDIR\data\media\vitruve.ico"
|
||||
${lnkX64IconFix} "$SMPROGRAMS\Ivolution\Ivolution.lnk"
|
||||
CreateShortCut "$DESKTOP\Ivolution.lnk" "$INSTDIR\Ivolutioner.exe" "" "$INSTDIR\data\media\vitruve.ico"
|
||||
${lnkX64IconFix} "$DESKTOP\Ivolution.lnk"
|
||||
|
||||
SetOutPath "$INSTDIR\data\haarcascades"
|
||||
SetOverwrite try
|
||||
File "dist\data\haarcascades\haarcascade_eye.xml"
|
||||
@@ -1130,15 +1208,16 @@ Section -AdditionalIcons
|
||||
SetOutPath $INSTDIR
|
||||
WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
|
||||
CreateShortCut "$SMPROGRAMS\Ivolution\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" "" "$INSTDIR\data\media\vitruve.ico"
|
||||
${lnkX64IconFix} "$SMPROGRAMS\Ivolution\Website.lnk"
|
||||
CreateShortCut "$SMPROGRAMS\Ivolution\Uninstall.lnk" "$INSTDIR\uninst.exe"
|
||||
SectionEnd
|
||||
|
||||
Section -Post
|
||||
WriteUninstaller "$INSTDIR\uninst.exe"
|
||||
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\w9xpopen.exe"
|
||||
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Ivolutioner.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\w9xpopen.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Ivolutioner.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
|
||||
@@ -2170,7 +2249,8 @@ Section Uninstall
|
||||
Delete "$SMPROGRAMS\Ivolution\Website.lnk"
|
||||
Delete "$SMPROGRAMS\Ivolution\Ivolution.lnk"
|
||||
Delete "$DESKTOP\Ivolution.lnk"
|
||||
RMDir "$SMPROGRAMS\Ivolution"
|
||||
RMDir /r "$APPDATA\Ivolution"
|
||||
RMDir /r "$SMPROGRAMS\Ivolution"
|
||||
|
||||
RMDir "$SMPROGRAMS\Ivolution"
|
||||
RMDir "$INSTDIR\tcl\tk8.5\ttk"
|
||||
|
||||
Reference in New Issue
Block a user