NSIS (OpenInsight 32-Bit)
At 05 AUG 2007 12:42:51PM Kauko Laurinolli wrote:
Anyone using NSIS (Nullsoft Scriptable Install System)?
Could it be possible to get some "Code Examples" to get started with it?
Thanks
At 05 AUG 2007 09:29PM Jim Vaughan wrote:
; Tactic client install ; written Jim Vaughan 11/5/06 !include "MUI.nsh" !include "Library.nsh" ; General ; The name of the installer Name "Tactic Version 5.2.12" ; The file to write OutFile "Setup.exe" ; icon to use !define MUI_ICON c:\oi32\WTACTIC.ICO !define MUI_UNICON c:\oi32\WTACTIC.ICO ; welcome page icon !define MUI_WELCOMEFINISHPAGE_BITMAP TACTIC.BMP !define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH ; default install directory InstallDir C:\Tactic ;-------------------------------------------------------- ; Pages !define MUI_PAGE_CUSTOMFUNCTION_LEAVE Tactic_run !insertmacro MUI_PAGE_WELCOME !define MUI_PAGE_CUSTOMFUNCTION_LEAVE directory !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH !insertmacro MUI_UNPAGE_WELCOME !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES !insertmacro MUI_UNPAGE_FINISH ;-------------------------------------------------------- ;Languages !insertmacro MUI_LANGUAGE "English" Section "Install" ;-------------------------------------------------------- ; Tactic files SetOutPath $INSTDIR File /r "c:\oi32\*.*" ;-------------------------------------------------------- ; Copy DLL files !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\COMMDLG.DLL $SYSDIR\COMMDLG.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\COMPOBJ.DLL $SYSDIR\COMPOBJ.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\CTL3D.DLL $SYSDIR\CTL3D.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\CTL3DV2.DLL $SYSDIR\CTL3DV2.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\DDEML.DLL $SYSDIR\DDEML.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\MFC250.DLL $SYSDIR\MFC250.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\MFCO250.DLL $SYSDIR\MFCO250.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\MFCOLEUI.DLL $SYSDIR\MFCOLEUI.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\NWCALLS.DLL $SYSDIR\NWCALLS.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\ODBC.DLL $SYSDIR\ODBC.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\ODBCINST.DLL $SYSDIR\ODBCINST.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\OLE2.DLL $SYSDIR\OLE2.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\OLE2CONV.DLL $SYSDIR\OLE2CONV.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\OLE2DISP.DLL $SYSDIR\OLE2DISP.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\OLE2NLS.DLL $SYSDIR\OLE2NLS.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\OLE2PROX.DLL $SYSDIR\OLE2PROX.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\OLECLI.DLL $SYSDIR\OLECLI.DLL $SYSDIR !insertmacro I nstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\OLESVR.DLL $SYSDIR\OLESVR.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\QELIB.DLL $SYSDIR\QELIB.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\QEUTIL.DLL $SYSDIR\QEUTIL.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\QLDBF.DLL $SYSDIR\QLDBF.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\QLTXT.DLL $SYSDIR\QLTXT.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\QLXLS.DLL $SYSDIR\QLXLS.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\SPIN.VBX $SYSDIR\SPIN.VBX $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\SSPP20.VBX $SYSDIR\SSPP20.VBX $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\STORAGE.DLL $SYSDIR\STORAGE.DLL $SYSDIR ; Copy graphics server files !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\asycfilt.dll $SYSDIR\asycfilt.dll $SYSDIR !insertmacro InstallLib REGDLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\graphs32.ocx $SYSDIR\graphs32.ocx $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\GSPROP32.DLL $SYSDIR\GSPROP32.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\GSW32.EXE $SYSDIR\GSW32.EXE $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\GSWAG32.DLL $SYSDIR\GSWAG32.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\GSWDLL32.DLL $SYSDIR\GSWDLL32.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFBMP13N.DLL $SYSDIR\LFBMP13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFCLP13N.DLL $SYSDIR\LFCLP13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFCMP13N.DLL $SYSDIR\LFCMP13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFEPS13N.DLL $SYSDIR\LFEPS13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFFAX13N.DLL $SYSDIR\LFFAX13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFFPX7.DLL $SYSDIR\LFFPX7.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFFPX13N.DLL $SYSDIR\LFFPX13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFGIF13N.DLL $SYSDIR\LFGIF13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFJ2K13N.DLL $SYSDIR\LFJ2K13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFKODAK.DLL $SYSDIR\LFKODAK.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFPCD13N.DLL $SYSDIR\LFPCD13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFPCX13N.DLL $SYSDIR\LFPCX13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFPNG13N.DLL $SYSDIR\LFPNG13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFPNM13N.DLL $SYSDIR\LFPNM13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFPSD13N.DLL $SYSDIR\LFPSD13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFTGA13N.DLL $SYSDIR\LFTGA13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFTIF13N.DLL $SYSDIR\LFTIF13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFXBM13N.DLL $SYSDIR\LFXBM13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LFXPM13N.DLL $SYSDIR\LFXPM13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LTCLR13n.dll $SYSDIR\LTCLR13n.dll $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LTDIS13N.DLL $SYSDIR\LTDIS13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LTEFX13N.DLL $SYSDIR\LTEFX13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LTFIL13N.DLL $SYSDIR\LTFIL13N.DLL $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\ltimg13n.dll $SYSDIR\ltimg13n.dll $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\ltkrn13n.dll $SYSDIR\ltkrn13n.dll $SYSDIR !insertmacro InstallLib DLL 1 REBOOT_PROTECTED C:\OI32\SYS_DLL\GS\LVKRN13N.DLL $SYSDIR\LVKRN13N.DLL $SYSDIR ; install ocx !insertmacro InstallLib REGDLL 1 REBOOT_PROTECTED C:\OI32\vsprint7.ocx $SYSDIR\vsprint7.ocx $SYSDIR !insertmacro InstallLib REGDLL 1 REBOOT_PROTECTED C:\OI32\SRP.ocx $SYSDIR\SRP.ocx $SYSDIR !insertmacro InstallLib REGDLL 1 REBOOT_PROTECTED C:\OI32\csXGraph.ocx $SYSDIR\csXGraph.ocx $SYSDIR ; copy ini files SetOutPath $WINDIR File C:\OI32\SYS_DLL\OINSIGHT.INI WriteRegStr HKLM "SYSTEM\CurrentControlSet\Control\WOW" "DefaultSeparateVDM" "Yes" ; set the installation directory as the destination for the following actions setOutPath $INSTDIR CreateDirectory "$SMPROGRAMS\Tactic" CreateShortCut "$SMPROGRAMS\Tactic\Tactic.lnk" "$INSTDIR\Tactic.exe" CreateShortCut "$SMPROGRAMS\Tactic\Manual.lnk" "$INSTDIR\TACTIC.PDF" ; run crypkey install, note this program only runs under NT ExecWait '"$INSTDIR\SetupEx.EXE"' ; create the uninstaller writeUninstaller $INSTDIR\uninstall.exe ; write to contol panel un-install WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tactic" \ "DisplayName" "Tactic" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tactic" \ "UninstallString" "$INSTDIR\uninstall.exe" sectionEnd ;-------------------------------------------------------- section "uninstall" ; first, delete the install dir RMDir /r /REBOOTOK $INSTDIR ; second, remove the link from the start menu RMDir /r /REBOOTOK $SMPROGRAMS\Tactic ; delete from contol panel un-install DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tactic" sectionEnd ;-------------------------------------------------------- Function Tactic_run ; Check if Tactic is running FindProcDLL::FindProc "OINSIGHT.exe" IntCmpU $R0 1 Tactic_in_use Continue Continue Tactic_in_use: MessageBox MB_OK "Can't install, Tactic is running." Abort "" Continue: FunctionEnd ;-------------------------------------------------------- Function directory ; is Tactic already installed IfFileExists $INSTDIR\OENGINE.EXE TacticInstalled Continue3 TacticInstalled: MessageBox MB_YESNO "This directory contains a copy of Tactic replace this copy?" IDYES Continue2 IDNO false false: Abort "" goto Continue3 Continue2: MessageBox MB_OK "Be sure to export your files if instructed to do so by the installation instructions." Continue3: FunctionEnd[/color][/size]
At 06 AUG 2007 11:18AM Kauko Laurinolli wrote:
Thank you very much.
I will study it and try to learn.
At 06 AUG 2007 03:09PM Gerald Lovel wrote:
NSIS is beautiful. I have batch files, ADMIN login icons, RBasic procs, and NSIS scripts to build releases. Works great. Here is my basic script to build the ATLAS Framework:
;NSIS Modern User Interface
;ATLAS Application Framework Script
;Written by Gerald Lovel
;——————————–
;Include Modern UI
!include "MUI.nsh";——————————–
;General
;define compression for minimum size;SetCompressor /SOLID LZMA;Name and fileName "ATLAS Framework"OutFile "S:\atlasdev\releases\ATLAS (1.0.1.1) Setup.exe";Default installation folderInstallDir "$PROGRAMFILES\ATLAS\OpenInsight";Installer iconIcon "S:\ATLASDEV\Install\ATLAS.ico";Get installation folder from registry if availableInstallDirRegKey HKCU "Software\ATLAS Framework" "";other optionsAllowRootDirInstall trueXPStyle on;——————————–
;Variables
Var MUI_TEMPVar STARTMENU_FOLDER;——————————–
;Interface Settings
!define MUI_ABORTWARNING;——————————–
;Pages
!insertmacro MUI_PAGE_WELCOME!insertmacro MUI_PAGE_LICENSE "S:\atlasdev\Install\ATLAS License.txt"!insertmacro MUI_PAGE_DIRECTORY;Start Menu Folder Page Configuration!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\ATLAS Framework"!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER!insertmacro MUI_PAGE_INSTFILES!insertmacro MUI_PAGE_FINISH!insertmacro MUI_UNPAGE_WELCOME!insertmacro MUI_UNPAGE_CONFIRM!insertmacro MUI_UNPAGE_INSTFILES!insertmacro MUI_UNPAGE_FINISH;——————————–
;Languages
!insertmacro MUI_LANGUAGE "English";——————————–
;Installer Sections
Section "Dummy Section" SecDummy
SetOutPath "$INSTDIR";ADD YOUR OWN FILES HERE...File /a /r S:\ATLAS\OpenInsight\*.*File /a /oname=OEngine.dll "S:\atlasdev\install\ATLAS OEngine.run"File /a "S:\atlasdev\install\ATLAS readme.txt"File /a /oname=oilogon.bmp "S:\atlasdev\install\ATLAS.bmp";Store installation folderWriteRegStr HKCU "Software\ATLAS Framework" "" $INSTDIR;Create uninstallerWriteUninstaller "$INSTDIR\Uninstall.exe"!insertmacro MUI_STARTMENU_WRITE_BEGIN Application;Create shortcutsCreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"SetOutPath "$INSTDIR"CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Administrator.lnk" "$INSTDIR\OINSIGHT.exe" "/AP=ATLAS /UN=ADMIN"CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Supervisor.lnk" "$INSTDIR\OINSIGHT.exe" "/AP=ATLAS /UN=SUPER /HI=1" "$INSTDIR\Icons\ATLAS.ico"CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\User00.lnk" "$INSTDIR\OINSIGHT.exe" "/AP=ATLAS /UN=USER00 /HI=1" "$INSTDIR\Icons\ATLAS.ico"CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Read Me.lnk" "$INSTDIR\ATLAS Readme.txt"CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"!insertmacro MUI_STARTMENU_WRITE_ENDSectionEnd
;——————————–
;Descriptions
;Language stringsLangString DESC_SecDummy ${LANG_ENGLISH} "A test section.";Assign language strings to sections!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN!insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy)!insertmacro MUI_FUNCTION_DESCRIPTION_END;——————————–
;Uninstaller Section
Section "Uninstall"
;ADD YOUR OWN FILES HERE...Delete "$INSTDIR\*.*"Delete "$INSTDIR\Uninstall.exe"RMDir /r "$INSTDIR"!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP;remove the start menu program iconsDelete "$SMPROGRAMS\$MUI_TEMP\Administrator.lnk"Delete "$SMPROGRAMS\$MUI_TEMP\Supervisor.lnk"Delete "$SMPROGRAMS\$MUI_TEMP\User00.lnk"Delete "$SMPROGRAMS\$MUI_TEMP\Read Me.lnk"Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk";Delete empty start menu parent directoriesStrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"startMenuDeleteLoop:ClearErrorsRMDir $MUI_TEMPGetFullPathName $MUI_TEMP "$MUI_TEMP\.."IfErrors startMenuDeleteLoopDoneStrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoopstartMenuDeleteLoopDone:DeleteRegKey /ifempty HKCU "Software\ATLAS Framework"SectionEnd
At 16 AUG 2007 07:17PM Clay Borne wrote:
Can you run RSKInstall in NSIS?
At 17 AUG 2007 01:02AM Jim Vaughan wrote:
]] RSKInstall «
I assume so, if that is executable in someway; I run other ".exe" from NSIS (by way of example that's how I install some drivers we need, I run a program called SetupEx.exe).
BTW For a full install I just distributes the entire c:\oi32 directory (my OI install directory) after stripping out all the development only stuff, removing source code and replacing my oengine with the run time copy.
For upgrades I wrote my own upgrade logic, it works like "Check in" only it copies in all my new object code / form logic etc. from temporary tables and then closes my application. Tod this I create a zip of the new code in temporary tables. They select upgrade and point it at the location of this zip file (called upgarade.tac). I unzip the file. Attach the tables and copy over the new records…
At 17 AUG 2007 06:29AM [url=http://www.sprezzatura.com]The Sprezzatura Group[/url] wrote:
You can use the RDKINSTP.DLL function.
pre.code {
background-color: #E5E5E5;border: 1px solid #000000;width: 450px;padding: 5px;font-family: courier, verdana, arial, serif;margin: 0px 10px auto;}
StartOI( HWND, LPSTR, LPSTR, LPSTR, LPSTR ); RunOICommand( HWND, LPSTR ); ShutdownOI(); StartOI( parentHandle, appID, startingDir, userName, passWord) RunOICommand( parentHandle, commandString );There are a few others related to the command panel, but I don't think you'll want them for NSIS.
World leaders in all things RevSoft
At 17 AUG 2007 08:54AM Clay Borne wrote:
Thanks!
At 17 AUG 2007 08:56AM Clay Borne wrote:
That's a pretty good idea. You don't have to worry about too many externals…