; Script generated by the HM NIS Edit Script Wizard. !include "MUI.nsh" !define VERSION "1.0.1.16" !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE "English" VIProductVersion "${VERSION}" VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "QED Business Systems P\L" VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Launcher for Harbinger 2003" VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${VERSION}" VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Vytautas Krivickas" Name "Harbinger Update" Caption "Harbinger Update" OutFile "Launch.exe" SilentInstall silent AutoCloseWindow True var Local var LocalVer var Server var ServerVer !macro UpdateFile FileName Index GetDLLVersion "$Local\${FileName}" $R0 $R1 IntOp $R2 $R0 / 0x00010000 IntOp $R3 $R0 & 0x0000FFFF IntOp $R4 $R1 / 0x00010000 IntOp $R5 $R1 & 0x0000FFFF StrCpy $LocalVer "$R2.$R3.$R4.$R5" GetDLLVersion "$Server\${FileName}" $R0 $R1 IntOp $R2 $R0 / 0x00010000 IntOp $R3 $R0 & 0x0000FFFF IntOp $R4 $R1 / 0x00010000 IntOp $R5 $R1 & 0x0000FFFF StrCpy $ServerVer "$R2.$R3.$R4.$R5" StrCmp $LocalVer $ServerVer "OK${Index}" "Update${Index}" Update${Index}: MessageBox MB_OK "$\"${FileName}$\" Update Found: $LocalVer to $ServerVer" CopyFiles /SILENT "$Server\${FileName}" "$Local" OK${Index}: !macroend Section "MainSection" ReadRegStr $Local HKLM 'Software\QED\Harbinger2003SE' 'Path' ReadIniStr $Server "$Local\h2003se.opt" 'Main' 'Data' StrCpy '$Server' "$Server\Setup" call UpdateSelf !insertmacro UpdateFile "Harbinger.exe" "Line${__LINE__}" !insertmacro UpdateFile "Versions.dll" "Line${__LINE__}" call GetParameters pop $1 Exec '"$Local\Harbinger.exe" $1' SectionEnd function UpdateSelf GetDLLVersion "$Local\Launch.exe" $R0 $R1 IntOp $R2 $R0 / 0x00010000 IntOp $R3 $R0 & 0x0000FFFF IntOp $R4 $R1 / 0x00010000 IntOp $R5 $R1 & 0x0000FFFF StrCpy $LocalVer "$R2.$R3.$R4.$R5" GetDLLVersion "$Server\Launch.exe" $R0 $R1 IntOp $R2 $R0 / 0x00010000 IntOp $R3 $R0 & 0x0000FFFF IntOp $R4 $R1 / 0x00010000 IntOp $R5 $R1 & 0x0000FFFF StrCpy $ServerVer "$R2.$R3.$R4.$R5" StrCmp $LocalVer $ServerVer "OK" "Update" Update: StrCmp $Local $EXEDIR "" StartUpdate CopyFiles /Silent "$Server\Launch.exe" "$TEMP\Launch.exe" Exec "$TEMP\Launch.exe" Quit StartUpdate: MessageBox MB_OK "$\"Launch.exe$\" Update Found: $LocalVer to $ServerVer" CopyFiles /Silent "$Server\Launch.exe" "$Local\Launch.exe" OK: functionend Function GetParameters Push $R0 Push $R1 Push $R2 Push $R3 StrCpy $R2 1 StrLen $R3 $CMDLINE ;Check for quote or space StrCpy $R0 $CMDLINE $R2 StrCmp $R0 '"' 0 +3 StrCpy $R1 '"' Goto loop StrCpy $R1 " " loop: IntOp $R2 $R2 + 1 StrCpy $R0 $CMDLINE 1 $R2 StrCmp $R0 $R1 get StrCmp $R2 $R3 get Goto loop get: IntOp $R2 $R2 + 1 StrCpy $R0 $CMDLINE 1 $R2 StrCmp $R0 " " get StrCpy $R0 $CMDLINE "" $R2 Pop $R3 Pop $R2 Pop $R1 Exch $R0 FunctionEnd