From 2a922782ec87d9e5384e3ca264da2969754f1983 Mon Sep 17 00:00:00 2001 From: anders_k Date: Sat, 29 Aug 2020 17:20:05 +0000 Subject: [PATCH] Generate simple application in examples (bug #1252) git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@7222 212acab6-be3b-0410-9dea-997c60f758d6 --- Examples/AppGen.nsi | 78 +++++++++++++++++++++++++++++++++++ Examples/SConscript | 1 + Examples/install-per-user.nsi | 5 ++- Examples/install-shared.nsi | 5 ++- Examples/makensis.nsi | 1 + 5 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 Examples/AppGen.nsi diff --git a/Examples/AppGen.nsi b/Examples/AppGen.nsi new file mode 100644 index 00000000..eaf5ab43 --- /dev/null +++ b/Examples/AppGen.nsi @@ -0,0 +1,78 @@ +/* +Note: This is not a installer example script, it's a script for a simple application used by some of the other examples. +*/ + +!define /math ARCBITS ${NSIS_PTR_SIZE} * 8 +Name "${NAME}" +!define /IfNDef OUTFILE "" +OutFile "${OUTFILE}" +Unicode True +!define /IfNDef REL User +RequestExecutionLevel ${REL} +XPStyle On +ManifestDPIAware True +AutoCloseWindow True +BrandingText " " +Caption "$(^Name) (${ARCBITS}-bit)" +MiscButtonText " " " " "E&xit" " " +LicenseBkColor /windows + +!ifdef COMPANY +!ifndef NOPEVI +!define /IfNDef VER 1.2.3.4 +VIProductVersion ${VER} +VIAddVersionKey /LANG=0 "FileVersion" "${VER}" +VIAddVersionKey /LANG=0 "CompanyName" "${COMPANY}" +VIAddVersionKey /LANG=0 "LegalCopyright" "${U+00A9} ${COMPANY}" +VIAddVersionKey /LANG=0 "FileDescription" "${NAME}" +!endif +!endif + +!include WinMessages.nsh +!include LogicLib.nsh + +PageEx License + Caption " " + LicenseText "$ExeFile$\n$ExePath" "E&xit" + PageCallbacks "" OnShow +PageExEnd +Page InstFiles + + +Function .onInit +!ifdef AUMI +System::Call 'SHELL32::SetCurrentProcessExplicitAppUserModelID(ws)' "${AUMI}" +!endif +FunctionEnd + + +Function OnShow +FindWindow $0 "#32770" "" $hWndParent +GetDlgItem $R9 $0 0x3E8 + +!ifdef MSG +SendMessage $R9 ${EM_REPLACESEL} "" "STR:${MSG}$\r$\n$\r$\n" +!endif + +!ifdef TMPLDATA +${IfNot} ${FileExists} "$AppData\${NAME}\*" + ; Copy template data from the shared source to this users profile + CreateDirectory "$AppData\${NAME}" + CopyFiles /Silent "${TMPLDATA}\*" "$AppData\${NAME}" +${EndIf} +ReadIniStr $2 "$AppData\${NAME}\Data.ini" Example Count +IntOp $2 $2 + 1 +WriteIniStr "$AppData\${NAME}\Data.ini" Example Count $2 +SendMessage $R9 ${EM_REPLACESEL} "" "STR:Launch Count=$2$\r$\n$\r$\n" +!endif + +SendMessage $R9 ${EM_REPLACESEL} "" "STR:CmdLine=$CmdLine$\r$\n" +ReadEnvStr $2 "USERNAME" +SendMessage $R9 ${EM_REPLACESEL} "" "STR:%USERNAME%=$2$\r$\n" +ReadEnvStr $2 "__COMPAT_LAYER" +StrCmp $2 "" +2 +SendMessage $R9 ${EM_REPLACESEL} "" "STR:Compatibility=$2$\r$\n" +FunctionEnd + +Section +SectionEnd diff --git a/Examples/SConscript b/Examples/SConscript index 28d82b24..1d47d22f 100644 --- a/Examples/SConscript +++ b/Examples/SConscript @@ -6,6 +6,7 @@ examples = Split(""" FileFunc.nsi FileFuncTest.nsi gfx.nsi + AppGen.nsi install-per-user.nsi install-shared.nsi languages.nsi diff --git a/Examples/install-per-user.nsi b/Examples/install-per-user.nsi index c5dcb7a4..9dc07765 100644 --- a/Examples/install-per-user.nsi +++ b/Examples/install-per-user.nsi @@ -59,7 +59,10 @@ Section "Program files (Required)" WriteRegDWORD HKCU "${REGPATH_UNINSTSUBKEY}" "NoModify" 1 WriteRegDWORD HKCU "${REGPATH_UNINSTSUBKEY}" "NoRepair" 1 - File "/oname=$InstDir\MyApp.exe" "${NSISDIR}\Bin\MakeLangId.exe" ; Pretend that we have a real application to install + !tempfile APP + !makensis '-v2 "-DOUTFILE=${APP}" "-DNAME=NSISPerUserAppExample" -DCOMPANY=Nullsoft "AppGen.nsi"' = 0 + File "/oname=$InstDir\MyApp.exe" "${APP}" ; Pretend that we have a real application to install + !delfile "${APP}" SectionEnd Section "Start Menu shortcut" diff --git a/Examples/install-shared.nsi b/Examples/install-shared.nsi index f812772b..7b9f6226 100644 --- a/Examples/install-shared.nsi +++ b/Examples/install-shared.nsi @@ -62,7 +62,10 @@ Section "Program files (Required)" WriteRegDWORD HKLM "${REGPATH_UNINSTSUBKEY}" "NoModify" 1 WriteRegDWORD HKLM "${REGPATH_UNINSTSUBKEY}" "NoRepair" 1 - File "/oname=$InstDir\MyApp.exe" "${NSISDIR}\Bin\MakeLangId.exe" ; Pretend that we have a real application to install + !tempfile APP + !makensis '-v2 "-DOUTFILE=${APP}" "-DNAME=NSISSharedAppExample" -DCOMPANY=Nullsoft "AppGen.nsi"' = 0 + File "/oname=$InstDir\MyApp.exe" "${APP}" ; Pretend that we have a real application to install + !delfile "${APP}" SectionEnd Section "Start Menu shortcut" diff --git a/Examples/makensis.nsi b/Examples/makensis.nsi index 851131ce..7396268e 100644 --- a/Examples/makensis.nsi +++ b/Examples/makensis.nsi @@ -307,6 +307,7 @@ ${MementoSection} "Script Examples" SecExample File ..\Examples\makensis.nsi File ..\Examples\example1.nsi File ..\Examples\example2.nsi + File ..\Examples\AppGen.nsi File ..\Examples\install-per-user.nsi File ..\Examples\install-shared.nsi File ..\Examples\waplugin.nsi