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
This commit is contained in:
anders_k 2020-08-29 17:20:05 +00:00
parent 654c8ad4d7
commit 2a922782ec
5 changed files with 88 additions and 2 deletions

78
Examples/AppGen.nsi Normal file
View file

@ -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

View file

@ -6,6 +6,7 @@ examples = Split("""
FileFunc.nsi
FileFuncTest.nsi
gfx.nsi
AppGen.nsi
install-per-user.nsi
install-shared.nsi
languages.nsi

View file

@ -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"

View file

@ -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"

View file

@ -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