NSIS is the Nullsoft Installation System and can be downloaded from
http://nsis.sourceforge.net/Main_PageIt is the installation system that Hal Assistant and the character expansion pack use. If you wish to make your own Hal plug-in and characters and want to distribute it so that end users can easily install it you can use this system.
Below is the script used by the character expansion pack to install characters in the correct location. Since the user can install Hal in a place other than the default location and different versions of Windows have different default locations, this script will find where Hal is really installed so that plug-in files are placed in the correct location.
OutFile 'PackSetup.exe'
RequestExecutionLevel admin
!define PRODUCT_NAME "Ultra Hal Character Expansion Pack"
!define PRODUCT_VERSION "6.0"
!define PRODUCT_PUBLISHER "Zabaware, Inc."
!define PRODUCT_WEB_SITE "http://www.zabaware.com/forum"
!define PRODUCT_DIR_REGKEY "Software\Zabaware\HalGenCharPack"
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
var HalDir
## Include headers
!include MUI.nsh
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
## Pages
!insertmacro MUI_PAGE_WELCOME
!define MUI_PAGE_CUSTOMFUNCTION_SHOW showComponents
!insertmacro MUI_PAGE_INSTFILES
; Finish page
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_INSTFILES
## Languages
!insertmacro MUI_LANGUAGE English
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
ShowInstDetails show
ShowUnInstDetails show
InstallDir "$PROGRAMFILES\Zabaware\Ultra Hal Assistant 6"
!include Library.nsh
Function showComponents
## Disable the Back button
GetDlgItem $R0 $HWNDPARENT 3
EnableWindow $R0 0
FunctionEnd
Function .onInit
;Extract InstallOptions files
;$PLUGINSDIR will automatically be removed when the installer closes
Push $HalDir
ReadRegStr $HalDir HKLM "${PRODUCT_UNINST_KEY}" "UninstallString"
IfErrors lbl_freshinstall 0
MessageBox MB_OK|MB_ICONQUESTION "The character expansion pack is already installed. Please uninstall it from Add/Remove Programs in your control panel first if you wish to reinstall it." IDOK
Abort
lbl_freshinstall:
InitPluginsDir
;Make sure Hal is installed
Push $HalDir
ReadRegStr $HalDir HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\HalAsst62.exe" ""
IfErrors 0 lbl_halexists
Push $HalDir
ReadRegStr $HalDir HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\HalAsst61.exe" ""
IfErrors 0 lbl_halexists
Push $HalDir
ReadRegStr $HalDir HKLM "Software\Microsoft\Windows\CurrentVersion\App Paths\HalAsst.exe" ""
IfErrors 0 lbl_halexists
lbl_nohal:
MessageBox MB_OK|MB_ICONQUESTION "Ultra Hal Assistant 6.x is not installed. This expansion pack requires Ultra Hal Assistant 6.x which can be downloaded from www.zabaware.com" IDOK
Abort
lbl_halexists:
Push $HalDir
ReadRegStr $HalDir HKLM "SOFTWARE\Zabaware\Ultra Hal Assistant 6.0\HalConfig" "HalDir"
IfErrors lbl_nohal 0
FunctionEnd
;********************************
;Actual installation starts here
;********************************
;Install main Hal files
Section "MainSection" SEC01
SetOutPath "$HalDir\Characters"
SetOverwrite on
File "Erica.htr"
File "Erica.jpg"
File "EricaBack.jpg"
File "EricaStart.jpg"
File "James.htr"
File "James.jpg"
File "JamesBack.jpg"
File "JamesStart.jpg"
File "Jessica.htr"
File "Jessica.jpg"
File "JessicaBack.jpg"
File "JessicaStart.jpg"
File "Margene.htr"
File "Margene.jpg"
File "MargeneBack.jpg"
File "MargeneStart.jpg"
File "Mary.htr"
File "Mary.jpg"
File "MaryBack.jpg"
File "MaryStart.jpg"
File "Mike.htr"
File "Mike.jpg"
File "MikeBack.jpg"
File "MikeStart.jpg"
File "Qo'Akavot.htr"
File "Qo'Akavot.jpg"
File "Qo'AkavotBack.jpg"
File "Qo'AkavotStart.jpg"
File "Sandy.htr"
File "Sandy.jpg"
File "SandyBack.jpg"
File "SandyStart.jpg"
File "geniprvw.jpg"
File "robystart.jpg"
File "pedystart.jpg"
File "pedyprvw.jpg"
File "mrlnprvw.jpg"
File "mrlnstart.jpg"
File "robyprvw.jpg"
File "genistart.jpg"
SectionEnd
Section -Post
WriteUninstaller "$HalDir\Characters\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$HalDir\Characters\uninst.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}"
SectionEnd
Function un.onUninstSuccess
HideWindow
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer."
FunctionEnd
Function un.onInit
Push $HalDir
ReadRegStr $HalDir HKLM "SOFTWARE\Zabaware\Ultra Hal Assistant 6.0\HalConfig" "HalDir"
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove $(^Name) and all of its components from $INSTDIR ?" IDYES +2
Abort
FunctionEnd
Section Uninstall
Delete "$HalDir\Characters\Erica.htr"
Delete "$HalDir\Characters\Erica.jpg"
Delete "$HalDir\Characters\EricaBack.jpg"
Delete "$HalDir\Characters\EricaStart.jpg"
Delete "$HalDir\Characters\James.htr"
Delete "$HalDir\Characters\James.jpg"
Delete "$HalDir\Characters\JamesBack.jpg"
Delete "$HalDir\Characters\JamesStart.jpg"
Delete "$HalDir\Characters\Jessica.htr"
Delete "$HalDir\Characters\Jessica.jpg"
Delete "$HalDir\Characters\JessicaBack.jpg"
Delete "$HalDir\Characters\JessicaStart.jpg"
Delete "$HalDir\Characters\Margene.htr"
Delete "$HalDir\Characters\Margene.jpg"
Delete "$HalDir\Characters\MargeneBack.jpg"
Delete "$HalDir\Characters\MargeneStart.jpg"
Delete "$HalDir\Characters\Mary.htr"
Delete "$HalDir\Characters\Mary.jpg"
Delete "$HalDir\Characters\MaryBack.jpg"
Delete "$HalDir\Characters\MaryStart.jpg"
Delete "$HalDir\Characters\Mike.htr"
Delete "$HalDir\Characters\Mike.jpg"
Delete "$HalDir\Characters\MikeBack.jpg"
Delete "$HalDir\Characters\MikeStart.jpg"
Delete "$HalDir\Characters\Qo'Akavot.htr"
Delete "$HalDir\Characters\Qo'Akavot.jpg"
Delete "$HalDir\Characters\Qo'AkavotBack.jpg"
Delete "$HalDir\Characters\Qo'AkavotStart.jpg"
Delete "$HalDir\Characters\Sandy.htr"
Delete "$HalDir\Characters\Sandy.jpg"
Delete "$HalDir\Characters\SandyBack.jpg"
Delete "$HalDir\Characters\SandyStart.jpg"
Delete "$HalDir\Characters\geniprvw.jpg"
Delete "$HalDir\Characters\robystart.jpg"
Delete "$HalDir\Characters\pedystart.jpg"
Delete "$HalDir\Characters\pedyprvw.jpg"
Delete "$HalDir\Characters\mrlnprvw.jpg"
Delete "$HalDir\Characters\mrlnstart.jpg"
Delete "$HalDir\Characters\robyprvw.jpg"
Delete "$HalDir\Characters\genistart.jpg"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
SetAutoClose true
SectionEnd
If you want to make your own installation for character files you can pretty much use this script without much modification or programming knowledge. First copy all the files you want to be part of the installation into one folder. Next open notepad and copy and paste the code above into it. Then you will need some modifications. At the start is this section:
!define PRODUCT_NAME "Ultra Hal Character Expansion Pack"
!define PRODUCT_VERSION "6.0"
!define PRODUCT_PUBLISHER "Zabaware, Inc."
!define PRODUCT_WEB_SITE "http://www.zabaware.com/forum"
!define PRODUCT_DIR_REGKEY "Software\Zabaware\HalGenCharPack"
Change all 5 of these options in quotes to your own product name, version, publisher, and web site. For reg key you can change the Zabaware\HalGenCharPack to something else.
Next find the section that look like this:
;Install main Hal files
Section "MainSection" SEC01
SetOutPath "$HalDir\Characters"
SetOverwrite on
File "Erica.htr"
File "Erica.jpg"
File "EricaBack.jpg"
File "EricaStart.jpg"
File "James.htr"
File "James.jpg"
File "JamesBack.jpg"
File "JamesStart.jpg"
File "Jessica.htr"
File "Jessica.jpg"
File "JessicaBack.jpg"
File "JessicaStart.jpg"
File "Margene.htr"
File "Margene.jpg"
File "MargeneBack.jpg"
File "MargeneStart.jpg"
File "Mary.htr"
File "Mary.jpg"
File "MaryBack.jpg"
File "MaryStart.jpg"
File "Mike.htr"
File "Mike.jpg"
File "MikeBack.jpg"
File "MikeStart.jpg"
File "Qo'Akavot.htr"
File "Qo'Akavot.jpg"
File "Qo'AkavotBack.jpg"
File "Qo'AkavotStart.jpg"
File "Sandy.htr"
File "Sandy.jpg"
File "SandyBack.jpg"
File "SandyStart.jpg"
File "geniprvw.jpg"
File "robystart.jpg"
File "pedystart.jpg"
File "pedyprvw.jpg"
File "mrlnprvw.jpg"
File "mrlnstart.jpg"
File "robyprvw.jpg"
File "genistart.jpg"
SectionEnd
Change all the files to the files you actually want to install. Note the outpath is $HalDir\Characters which means it will put everything in the "Characters" subfolder of Hal's program files folder.
Lastly find the section that looks like:
Section Uninstall
Delete "$HalDir\Characters\Erica.htr"
Delete "$HalDir\Characters\Erica.jpg"
Delete "$HalDir\Characters\EricaBack.jpg"
Delete "$HalDir\Characters\EricaStart.jpg"
Delete "$HalDir\Characters\James.htr"
Delete "$HalDir\Characters\James.jpg"
Delete "$HalDir\Characters\JamesBack.jpg"
Delete "$HalDir\Characters\JamesStart.jpg"
Delete "$HalDir\Characters\Jessica.htr"
Delete "$HalDir\Characters\Jessica.jpg"
Delete "$HalDir\Characters\JessicaBack.jpg"
Delete "$HalDir\Characters\JessicaStart.jpg"
Delete "$HalDir\Characters\Margene.htr"
Delete "$HalDir\Characters\Margene.jpg"
Delete "$HalDir\Characters\MargeneBack.jpg"
Delete "$HalDir\Characters\MargeneStart.jpg"
Delete "$HalDir\Characters\Mary.htr"
Delete "$HalDir\Characters\Mary.jpg"
Delete "$HalDir\Characters\MaryBack.jpg"
Delete "$HalDir\Characters\MaryStart.jpg"
Delete "$HalDir\Characters\Mike.htr"
Delete "$HalDir\Characters\Mike.jpg"
Delete "$HalDir\Characters\MikeBack.jpg"
Delete "$HalDir\Characters\MikeStart.jpg"
Delete "$HalDir\Characters\Qo'Akavot.htr"
Delete "$HalDir\Characters\Qo'Akavot.jpg"
Delete "$HalDir\Characters\Qo'AkavotBack.jpg"
Delete "$HalDir\Characters\Qo'AkavotStart.jpg"
Delete "$HalDir\Characters\Sandy.htr"
Delete "$HalDir\Characters\Sandy.jpg"
Delete "$HalDir\Characters\SandyBack.jpg"
Delete "$HalDir\Characters\SandyStart.jpg"
Delete "$HalDir\Characters\geniprvw.jpg"
Delete "$HalDir\Characters\robystart.jpg"
Delete "$HalDir\Characters\pedystart.jpg"
Delete "$HalDir\Characters\pedyprvw.jpg"
Delete "$HalDir\Characters\mrlnprvw.jpg"
Delete "$HalDir\Characters\mrlnstart.jpg"
Delete "$HalDir\Characters\robyprvw.jpg"
Delete "$HalDir\Characters\genistart.jpg"
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
SetAutoClose true
SectionEnd
This is the uninstallation instructions. Change all the file names here to match the files you installed in the previous section.
After that's done, save your script with the ".NSI" file extension and use the NSIS program you downloaded from
http://nsis.sourceforge.net/ to compile it. It will make a professional setup.exe file for you and compress everything into it.