Page MenuHomePhabricator

fred.nsi
No OneTemporary

Size
13 KB
Referenced Files
None
Subscribers
None

fred.nsi

; installer.nsi
; Generated by Excelsior Installer v2.2
; Mon Jun 25 20:24:47 CEST 2012
; -----------------------------------------------------------------------------
; The installation script based on NSIS modern user interface
; -----------------------------------------------------------------------------
;
!define PROJECT_ROOT_PATH "C:\Documents and Settings\gida\Desktop\fred-0.1.0beta4"
!define PROJECT_NSIS_PATH "${PROJECT_ROOT_PATH}\NSIS"
!define PROJECT_NSIS_RESOURCES_PATH "${PROJECT_NSIS_PATH}\resources"
!define PROJECT_LONG_NAME "Forensic Registry EDitor"
!define PROJECT_SHORT_NAME "fred"
!define PROJECT_VERSION "0.1.0beta4"
!define PROJECT_DEF_INSTDIR "$PROGRAMFILES\\${PROJECT_SHORT_NAME}"
!define PACKAGENAME "${PROJECT_SHORT_NAME}-${PROJECT_VERSION}"
!define EIT_LOG_FILENAME "nsis_install.log"
!define DEF_SHORTCUTS_EXISTS
;
; -----------------------------------------------------------------------------
; Include Modern UI, logic statements, file functions and EIT support
!include "MUI2.nsh"
!include "x64.nsh"
!include "LogicLib.nsh"
!include "FileFunc.nsh"
!include "${PROJECT_SHORT_NAME}.nsh"
!include "${PROJECT_SHORT_NAME}_PageInstallType.nsh"
!include "${PROJECT_SHORT_NAME}_PageShortcuts.nsh"
!include "${PROJECT_SHORT_NAME}_PageInstallInfo.nsh"
;
; -----------------------------------------------------------------------------
; Configuration of the installation script
!define COMPANY_NAME ""
!define DEFAULT_PROGRAM_FOLDER "\${PROJECT_SHORT_NAME}"
; Valid values for installation type: "auto" | "askuser" | "common" | "private"
!define DESIRED_INSTALL_TYPE "auto"
!define REGISTRY_KEY_NAME "Software\\${PROJECT_SHORT_NAME}"
!define LICENSE_TEXT_FILE "\\?\${PROJECT_NSIS_RESOURCES_PATH}\license.txt"
!define UNINSTALLER_RELPATH ""
!define UNINSTALLER_FILE_NAME "Uninstall.exe"
!define UNINSTALLER_PATH "$INSTDIR\${UNINSTALLER_RELPATH}"
; -----------------------------------------------------------------------------
; Declaration of variables
Var IsCommonInstallation
Var KeepOnUninstall
Var InstlDirWasNotEdited
Var LastDefaultInstalllDir
Var StartMenuFolder
; -----------------------------------------------------------------------------
; General Attributes
Name "${PROJECT_LONG_NAME}" "${PROJECT_LONG_NAME}"
OutFile "\\?\${PROJECT_NSIS_PATH}\${PROJECT_SHORT_NAME}-${PROJECT_VERSION}-win32.exe"
; Default installation folder
InstallDir "${PROJECT_DEF_INSTDIR}"
; Version Information
VIAddVersionKey "CompanyName" ""
VIAddVersionKey "LegalCopyright" "Copyright (c) 2011-2012 by Gillen Daniel"
VIAddVersionKey "ProductName" "${PROJECT_LONG_NAME}"
VIAddVersionKey "ProductVersion" "${PROJECT_VERSION}"
VIAddVersionKey "FileDescription" "${PROJECT_SHORT_NAME} ${PROJECT_VERSION}"
VIAddVersionKey "FileVersion" "${PROJECT_VERSION}"
VIProductVersion "0.1.0.0"
; The installer will perform a CRC on itself before allowing an install
CRCCheck on
; Request application privileges for Windows Vista
RequestExecutionLevel admin
BrandingText ""
; -----------------------------------------------------------------------------
; Interface Attributes and Settings
; The interface settings provided by the NSIS compiler itself (such as
; LicenseText, Icon, CheckBitmap, InstallColors) should not be used in
; Modern UI scripts. The Modern UI provides equalivent or extended
; versions of these settings.
!define MUI_ABORTWARNING
!define MUI_WELCOMEPAGE_TITLE_3LINES
!define MUI_FINISHPAGE_TITLE_3LINES
!define MUI_UNICON "${PROJECT_NSIS_RESOURCES_PATH}\xuninst.ico"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_RIGHT
!define MUI_HEADERIMAGE_BITMAP "${PROJECT_NSIS_RESOURCES_PATH}\xinst_header.bmp"
!define MUI_HEADERIMAGE_UNBITMAP "${PROJECT_NSIS_RESOURCES_PATH}\xinst_header.bmp"
!define MUI_WELCOMEFINISHPAGE_BITMAP "${PROJECT_NSIS_RESOURCES_PATH}\xinst_page.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${PROJECT_NSIS_RESOURCES_PATH}\xuninst_page.bmp"
!define MUI_WELCOMEPAGE_TITLE "$(MSG_WELCOMEPAGE_TITLE)"
!define MUI_WELCOMEPAGE_TEXT "$(MSG_WELCOMEPAGE_TEXT)"
; -----------------------------------------------------------------------------
; Installer Page Settings
; Do not display the checkbox to disable the creation of Start Menu shortcuts.
!define MUI_STARTMENUPAGE_NODISABLE
!ifdef MUI_FINISHPAGE_RUN
!define MUI_FINISHPAGE_RUN_TEXT "$(MSG_FINISHPAGE_RUN_TEXT)"
!endif
!ifdef MUI_FINISHPAGE_SHOWREADME
!define MUI_FINISHPAGE_SHOWREADME_TEXT "$(MSG_FINISHPAGE_SHOWREADME_TEXT)"
!endif
!ifdef FEATURE_REBOOT_NEEDED
!define MUI_FINISHPAGE_TEXT_REBOOT "$(MSG_FINISHPAGE_REBOOT_TEXT)"
!define MUI_FINISHPAGE_TEXT_REBOOTNOW "$(MSG_FINISHPAGE_REBOOT_NOW)"
!define MUI_FINISHPAGE_TEXT_REBOOTLATER "$(MSG_FINISHPAGE_REBOOT_LATER)"
!endif
; Declaration of folder for shortcuts
${EIT_MUI_PAGE_SHORTCUTS_AddFolder} EIT_MUI_SHORTCUT_FOLDER_DESKTOP
; -----------------------------------------------------------------------------
!ifdef CLEANUP_DIR
!insertmacro EIT_FUNC_DECL_MkCleanupLogString
!endif
; -----------------------------------------------------------------------------
; If $INSTDIR was never edited by user - update it to default value to accept
; installation type changes
Function UpdateInstallDir
${if} $InstlDirWasNotEdited != 0
StrCmp "$INSTDIR" "$LastDefaultInstalllDir" instdir_not_changed
StrCpy $InstlDirWasNotEdited 0 ; oops. it was changed. turn this auto-update off
Return
instdir_not_changed:
StrCpy $INSTDIR "${PROJECT_DEF_INSTDIR}"
StrCpy $LastDefaultInstalllDir "$INSTDIR"
${endif}
FunctionEnd ; UpdateInstallDir
; -----------------------------------------------------------------------------
; Call at exit from MUI_PAGE_WELCOME:
Function CheckAdminRights
Push $R1
StrCpy $R1 ${DESIRED_INSTALL_TYPE}
; EIT_CheckAdminRights():
; In: R1 = ${DESIRED_INSTALL_TYPE}
; Out: R1 = 1/0 - Admin/NoAdmin
; (OR exit with 'Admin rigths required' message)
Call EIT_CheckAdminRights
${if} $R1 != 0
${if} ${DESIRED_INSTALL_TYPE} != "personal"
${EIT_SetCommonInstallType} 1 ; by default it was 0
Call UpdateInstallDir
${endif}
${endif}
Pop $R1
FunctionEnd ; CheckAdminRights
; -----------------------------------------------------------------------------
; Call at exit from EIT_MUI_PAGE_INSTALLTYPE:
Function AcceptInstallType
${EIT_SetCommonInstallType} $IsCommonInstallation
Call UpdateInstallDir
FunctionEnd ; AcceptInstallType
; -----------------------------------------------------------------------------
; Installer Pages
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE CheckAdminRights
!insertmacro MUI_PAGE_WELCOME
!ifdef LICENSE_TEXT_FILE
!insertmacro MUI_PAGE_LICENSE "${LICENSE_TEXT_FILE}"
!endif
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE AcceptInstallType
!insertmacro EIT_MUI_PAGE_INSTALLTYPE $IsCommonInstallation
!insertmacro MUI_PAGE_DIRECTORY
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "${DEFAULT_PROGRAM_FOLDER}"
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
!insertmacro EIT_MUI_PAGE_SHORTCUTS EIT_CreateShortCut
!insertmacro EIT_MUI_PAGE_INSTALLINFO $StartMenuFolder \
EIT_MUI_PAGE_SHORTCUTS_GetInstallInfo
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
; -----------------------------------------------------------------------------
; Uninstaller Page Settings
!ifdef UNINSTALL_FEEDBACK_URL
!define MUI_FINISHPAGE_TEXT "$(MSG_FEEDBACK_TEXT)"
!define MUI_FINISHPAGE_SHOWREADME ${UNINSTALL_FEEDBACK_URL}
!define MUI_FINISHPAGE_SHOWREADME_TEXT "$(MSG_FEEDBACK_CHK_TEXT)"
!endif
; -----------------------------------------------------------------------------
; Uninstaller Pages
!insertmacro MUI_UNPAGE_WELCOME
; !insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
; -----------------------------------------------------------------------------
; Languages
##SUPPORTED_LANGUAGES
!insertmacro MUI_LANGUAGE_EIT "English"
;!insertmacro MUI_LANGUAGE_EIT "Czech"
;!insertmacro MUI_LANGUAGE_EIT "French"
;!insertmacro MUI_LANGUAGE_EIT "German"
;!insertmacro MUI_LANGUAGE_EIT "Italian"
;!insertmacro MUI_LANGUAGE_EIT "Japanese"
;!insertmacro MUI_LANGUAGE_EIT "Polish"
;!insertmacro MUI_LANGUAGE_EIT "Brazilian"
;!insertmacro MUI_LANGUAGE_EIT "Russian"
;!insertmacro MUI_LANGUAGE_EIT "Spanish"
; -----------------------------------------------------------------------------
; Reserve Files
;If you are using solid compression, files that are required before
;the actual installation should be stored first in the data block,
;because this will make your installer start faster.
!insertmacro MUI_RESERVEFILE_LANGDLL
; -----------------------------------------------------------------------------
; Installer Sections
Section "Installer Section"
Push $0
StrCpy $0 "" ; collect cleanup directopy log strings in $0
StrCpy $KeepOnUninstall 0
; Call pre-install action of install customization DLL if it was
; specified in the project
!ifdef INSTALL_CALLBACK_DLL
!insertmacro EIT_CALL_PREINSTALL "${INSTALL_CALLBACK_DLL}"
!endif
; Set $OUTPATH, open install log and create uninstaller
${EIT_StartInstallation} "${UNINSTALLER_PATH}" "${UNINSTALLER_FILE_NAME}" "$0"
; Add package files to be extracted to the output path
${EIT_CreateDirectory} "$INSTDIR\report_templates"
${EIT_AddFile} "$INSTDIR\report_templates\NTUSER_RecentDocs.qs" "${PROJECT_ROOT_PATH}\report_templates\NTUSER_RecentDocs.qs"
${EIT_AddFile} "$INSTDIR\report_templates\NTUSER_TypedUrls.qs" "${PROJECT_ROOT_PATH}\report_templates\NTUSER_TypedUrls.qs"
${EIT_AddFile} "$INSTDIR\report_templates\NTUSER_WindowsLiveAccounts.qs" "${PROJECT_ROOT_PATH}\report_templates\NTUSER_WindowsLiveAccounts.qs"
${EIT_AddFile} "$INSTDIR\report_templates\SAM_UserAccounts.qs" "${PROJECT_ROOT_PATH}\report_templates\SAM_UserAccounts.qs"
${EIT_AddFile} "$INSTDIR\report_templates\SOFTWARE_WindowsVersion.qs" "${PROJECT_ROOT_PATH}\report_templates\SOFTWARE_WindowsVersion.qs"
${EIT_AddFile} "$INSTDIR\report_templates\SYSTEM_CurrentNetworkSettings.qs" "${PROJECT_ROOT_PATH}\report_templates\SYSTEM_CurrentNetworkSettings.qs"
${EIT_AddFile} "$INSTDIR\report_templates\SYSTEM_SystemTimeInfo.qs" "${PROJECT_ROOT_PATH}\report_templates\SYSTEM_SystemTimeInfo.qs"
${EIT_AddFile} "$INSTDIR\report_templates\SYSTEM_UsbStorageDevices.qs" "${PROJECT_ROOT_PATH}\report_templates\SYSTEM_UsbStorageDevices.qs"
${EIT_AddFile} "$INSTDIR\fred.exe" "${PROJECT_ROOT_PATH}\fred.exe"
${EIT_AddFile} "$INSTDIR\libgcc_s_dw2-1.dll" "${PROJECT_ROOT_PATH}\libgcc_s_dw2-1.dll"
${EIT_AddFile} "$INSTDIR\libiconv-2.dll" "${PROJECT_ROOT_PATH}\libiconv-2.dll"
${EIT_AddFile} "$INSTDIR\mingwm10.dll" "${PROJECT_ROOT_PATH}\mingwm10.dll"
${EIT_AddFile} "$INSTDIR\phonon4.dll" "${PROJECT_ROOT_PATH}\phonon4.dll"
${EIT_AddFile} "$INSTDIR\QtCore4.dll" "${PROJECT_ROOT_PATH}\QtCore4.dll"
${EIT_AddFile} "$INSTDIR\QtGui4.dll" "${PROJECT_ROOT_PATH}\QtGui4.dll"
${EIT_AddFile} "$INSTDIR\QtNetwork4.dll" "${PROJECT_ROOT_PATH}\QtNetwork4.dll"
${EIT_AddFile} "$INSTDIR\QtScript4.dll" "${PROJECT_ROOT_PATH}\QtScript4.dll"
${EIT_AddFile} "$INSTDIR\QtWebKit4.dll" "${PROJECT_ROOT_PATH}\QtWebKit4.dll"
StrCpy $KeepOnUninstall 0
; Create registry key
!ifdef REGISTRY_KEY_NAME
${EIT_WriteRegStr} SHCTX "${REGISTRY_KEY_NAME}" "InstallPath" "$INSTDIR"
!endif
; Create Start Menu shortcuts
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
${EIT_CreateDirRecursively} "$SMPROGRAMS\$StartMenuFolder"
${EIT_CreateShortCut} \
"$SMPROGRAMS\$StartMenuFolder\fred.lnk" "$INSTDIR\fred.exe" \
'""' "$INSTDIR"
${EIT_CreateShortCut} \
"$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe" \
'""' "$INSTDIR"
!insertmacro MUI_STARTMENU_WRITE_END
${EIT_MUI_PAGE_SHORTCUTS_CreateShortcut} EIT_MUI_SHORTCUT_FOLDER_DESKTOP \
"\fred.lnk" "$INSTDIR\fred.exe" \
'""' "$INSTDIR"
; Call post-install action of install customization DLL if it was
; specified in the project
!ifdef INSTALL_CALLBACK_DLL
!insertmacro EIT_CALL_POSTINSTALL
!endif
!ifdef FEATURE_REBOOT_NEEDED
SetRebootFlag true
!endif
Pop $0
System::Call 'shell32::SHChangeNotify(i 0x08000000, i 0, i 0, i 0) v'
SectionEnd ; Installer Sections
; -----------------------------------------------------------------------------
; Customization of install NSIS callbacks
Function .onInit
StrCpy $InstlDirWasNotEdited 1
!ifdef SPLASH_FILE
InitPluginsDir
File /oname=$PLUGINSDIR\splash.bmp "${SPLASH_FILE}"
splash::show 1000 $PLUGINSDIR\splash
Pop $0
!endif
!ifdef REGISTRY_KEY_NAME
ReadRegStr $R0 HKLM "${REGISTRY_KEY_NAME}" "InstallPath"
${if} $R0 == ''
ClearErrors
ReadRegStr $R0 HKCU "${REGISTRY_KEY_NAME}" "InstallPath"
${endif}
${if} $R0 != ''
ClearErrors
FileOpen $R0 "${UNINSTALLER_PATH}${EIT_LOG_FILENAME}" "r"
${if} ${Errors}
ClearErrors
${else}
FileClose $R0
MessageBox MB_YESNO "$(MSG_PREV_INST_FOUND)" IDYES L_DoInstall
Quit
L_DoInstall:
${endif}
${endif}
!endif
StrCpy $LastDefaultInstalllDir $INSTDIR
FunctionEnd
; -----------------------------------------------------------------------------
Function .onInstFailed
${EIT_AbortInstallation} "${UNINSTALLER_PATH}" "${UNINSTALLER_FILE_NAME}"
FunctionEnd
; -----------------------------------------------------------------------------
Function .onInstSuccess
${EIT_EndInstallation} "${COMPANY_NAME}" "${UNINSTALLER_PATH}" "${UNINSTALLER_FILE_NAME}"
FunctionEnd
; -----------------------------------------------------------------------------
; Uninstaller Section
Section "un.Uninstaller Section"
; Call pre-uninstall action of uninstall customization DLL if it was
; specified in the project
!ifdef UNINSTALL_CALLBACK_DLL
!endif
; at this point the $INSTDIR contais the path to Uninstall.exe
${un.EIT_ExecuteUninstall} "$INSTDIR\"
RMDir "$INSTDIR"
SectionEnd ; Uninstaller Section
; -----------------------------------------------------------------------------
; Customization of uninstall NSIS callbacks
Function un.onInit
FunctionEnd

File Metadata

Mime Type
text/plain
Expires
Thu, Jun 26, 5:30 AM (18 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1239358
Default Alt Text
fred.nsi (13 KB)

Event Timeline