lots of updates: user variables, new instructions, text updates, changelog etc.
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2747 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
4fbd8b1991
commit
91dc660c02
12 changed files with 149 additions and 83 deletions
|
@ -63,3 +63,27 @@ This command will issue a warning to the script compiler. You can also add a mes
|
|||
\c level
|
||||
|
||||
This command will set the level of verbosity. 4=all, 3=no script, 2=no info, 1=no warnings, 0=none
|
||||
|
||||
\S0{comppredefines} Predefines
|
||||
|
||||
You can use these standard predefines to automatically add the build time to the title of development versions, add the date to the version number, etc.
|
||||
|
||||
\S1{prefile} $\{__FILE__\}
|
||||
|
||||
Current script name.
|
||||
|
||||
\S1{preline} $\{__LINE__\}
|
||||
|
||||
Current line number.
|
||||
|
||||
\S1{predate} $\{__DATE__\}
|
||||
|
||||
Date date according to the current locale.
|
||||
|
||||
\S1{pretime} $\{__TIME__\}
|
||||
|
||||
Time according to the current locale.
|
||||
|
||||
\S1{pretimestamp} $\{__TIMESTAMP__\}
|
||||
|
||||
Date & time according to the current locale.
|
||||
|
|
|
@ -12,6 +12,6 @@
|
|||
|
||||
\preamble NSIS is a free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge.
|
||||
|
||||
\preamble To get all of the latest information about NSIS development: \W{http://nsis.sourceforge.net/}{NSIS Development Page}.\\<br\\>To talk with others in the NSIS community: \W{http://forums.winamp.com/forumdisplay.php?s=&forumid=65}{NSIS forum}.\\<br\\>For more useful functions, NSIS related software, example scripts, plugins and tutorials: \W{http://nsis.sourceforge.net/archive/}{NSIS Archive}.
|
||||
\preamble To get all of the latest information about NSIS development: \W{http://nsis.sourceforge.net/}{NSIS Development Page}.\\<br\\>To talk with others in the NSIS community: \W{http://forums.winamp.com/forumdisplay.php?s=&forumid=65}{NSIS forum}.\\<br\\>For more useful functions, NSIS script editors and other software, example scripts, plug-ins and tutorials: \W{http://nsis.sourceforge.net/archive/}{NSIS Archive}.
|
||||
|
||||
\copyright Copyright (C) 1999-2003 Nullsoft, Inc.
|
|
@ -86,10 +86,12 @@
|
|||
|
||||
\H{translators} Translators
|
||||
|
||||
Arabic - \e{asdfuae}
|
||||
Arabic - \e{TuW@nNu (asdfuae)}
|
||||
|
||||
Bulgarian - \e{Asparouh Kalyandjiev}
|
||||
|
||||
Catalan - \e{falanko}
|
||||
|
||||
Croatian - \e{Vedran "RIV@NVX" Miletic}
|
||||
|
||||
Czech - \e{T.V. Zuggy}
|
||||
|
@ -98,9 +100,13 @@ Danish - \e{Christopher, Casper Bergenstoff}
|
|||
|
||||
Dutch - \e{Hendri Adriaens, Joost Verburg}
|
||||
|
||||
Estonian - \e{izzo}
|
||||
|
||||
Finnish - \e{AKX, Eclipser}
|
||||
|
||||
French - \e{veekee, Sébastien Delahaye}
|
||||
|
||||
German - \e{L.King, K. Windszus}
|
||||
German - \e{L.King, K. Windszus, R. Bisswanger}
|
||||
|
||||
Greek - \e{Makidis N. Mike}
|
||||
|
||||
|
@ -110,40 +116,44 @@ Hungarian - \e{Soft-Trans Bt., Jozsef Tamas Herczeg, Lajos Molnar (Orfanik)}
|
|||
|
||||
Italian - \e{Orfanik, sanface}
|
||||
|
||||
Japanese - \e{Dnanako}
|
||||
Japanese - \e{Dnanako, Takahiro Yoshimura}
|
||||
|
||||
Korean - \e{dTomoyo, linak}
|
||||
Korean - \e{dTomoyo, linak, koder}
|
||||
|
||||
Lithuanian - \e{NorCis}
|
||||
|
||||
Macedonian - \e{Sasko Zdravkin}
|
||||
|
||||
Polish - \e{Piotr Murawski & Rafa³ Lampe, cube}
|
||||
|
||||
Portuguese - \e{DragonSoull}
|
||||
Portuguese - \e{DragonSoull, Dre', Ramon}
|
||||
|
||||
Portuguese Brasil - \e{Layout do Brasil, Diego Marcos}
|
||||
|
||||
Romanian - \e{Cristian Pirvu}
|
||||
Romanian - \e{Sorin Sbarnea, Cristian Pirvu}
|
||||
|
||||
Russian - \e{Sergey `Timon` Kusnetsov, Nik Medved, Scam}
|
||||
|
||||
Serbian - \e{Vladan Obradovic}
|
||||
|
||||
Slovak - \e{trace, Kypec}
|
||||
|
||||
Spanish - \e{MoNKi}
|
||||
Slovenian - \e{Janez Dolinar}
|
||||
|
||||
Swedish - \e{Peter Gustafsson}
|
||||
Spanish - \e{MoNKi, dark_boy}
|
||||
|
||||
Thai - \e{TuW@nNu}
|
||||
Swedish - \e{Peter Gustafsson, Magnus Bonnevier, Rickard Angbratt}
|
||||
|
||||
Thai - \e{TuW@nNu (asdfuae)}
|
||||
|
||||
Traditional & Simplified Chinese - \e{Kii Ali}
|
||||
|
||||
Turkish - \e{Bertan Kodamanoglu}
|
||||
|
||||
Ukrainian - \e{Yuri Holubow}
|
||||
Ukrainian - \e{Yuri Holubow, Nash-Soft}
|
||||
|
||||
\H{addition} Maintenance Staff
|
||||
\H{writers} Writers
|
||||
|
||||
\e{Sebastian Armbrust aka flizebogen}
|
||||
|
||||
\b Maintaining the Docs
|
||||
|
||||
\b Tutorial
|
||||
|
|
|
@ -69,9 +69,9 @@ Assign to the user variable $x, the full path of the file specified. If the path
|
|||
|
||||
\S2{gettempfilename} GetTempFileName
|
||||
|
||||
\c user_var(output)
|
||||
\c user_var(output) base_dir
|
||||
|
||||
Assign to the user variable $x, the name of a temporary file. The file will have been created, so you can then overwrite it with what you please. The name of the temporary file is guaranteed to be unique. Delete the file when done with it.
|
||||
Assign to the user variable $x, the name of a temporary file. The file will have been created, so you can then overwrite it with what you please. The name of the temporary file is guaranteed to be unique. If to want the temporary file to be created in another directory than the Windows temp direcory, specify a base_dir. Delete the file when done with it.
|
||||
|
||||
\S2{searchpath} SearchPath
|
||||
|
||||
|
|
|
@ -3,16 +3,20 @@
|
|||
|
||||
\e{v2.0b4}
|
||||
|
||||
\b User variables ($VARNAME) that can be declared with the \R{var}{Var} command
|
||||
|
||||
\b \W{../Contrib/Modern UI/Readme.html}{Modern UI 1.65}: Easier page macro system, language specific fonts, \R{alicenseforceselection}{LicenseForceSelection} support, new options for Finish page / language selection dialog, fixes, more
|
||||
|
||||
\b Added \R{asetallowskipfiles}{AllowSkipFiles}: Set whether the user should be able to skip a file when overwriting failed
|
||||
|
||||
\b \W{../Contrib/InstallOptions/Readme.html}{InstallOptions}: Added LINK control, added EXTENDEDSELECT flag for list boxes which replaces MULTISELECT that now acts exactly as the real style flag ([double] click turns on or off selection), fixes
|
||||
\b \W{../Contrib/InstallOptions/Readme.html}{InstallOptions 2.2}: Added LINK control, added EXTENDEDSELECT flag for list boxes which replaces MULTISELECT that now acts exactly as the real style flag ([double] click turns on or off selection), fixes
|
||||
|
||||
\b Added support for standard predefines: $\{__DATE__\}, $\{__TIME__\}, $\{__TIMESTAMP__\}, $\{__FILE__\}, $\{__LINE__\}
|
||||
|
||||
\b \W{../Contrib/Makensisw/Readme.txt}{MakeNSISW 2.0}: UI to define symbols, toolbar, more
|
||||
|
||||
\b NLF language files (v5): More strings translatable (K/M/G Byte, registering, unregistering), language specific fonts
|
||||
|
||||
\b /o Switch for \R{ssection}{Section} provides ability to unselect the section by default
|
||||
|
||||
\b Increased amount of InstTypes to 32
|
||||
|
@ -39,7 +43,7 @@
|
|||
|
||||
\b Improved \R{aaddbrandingimage}{AddBrandingImage}: Doesn't depend on the UI, can set image on the bottom and on the right, support for custom padding value
|
||||
|
||||
\b NLF language files (v5): More strings translatable (K/M/G Byte, registering, unregistering), language specific fonts
|
||||
\b Added base_dir for \R{gettempfilename}{GetTempFileName}
|
||||
|
||||
\b Fixed a problem regarding borders in Plug-ins BgImage and InstallOptions
|
||||
|
||||
|
@ -49,8 +53,8 @@
|
|||
|
||||
\\<b\\>Notes:\\</b\\>
|
||||
|
||||
\W{../Contrib/Modern UI/Readme.html}{Modern UI 1.65}: Because of the new page macro's, you have to make some small changes to your scripts, see the Modern UI Readme for details \\<br\\>
|
||||
\R{page}{Custom Pages} now have a leave function. As this parameter is before the caption you have to add another "" empty string for the title to work. \\<br\\>
|
||||
\W{../Contrib/Modern UI/Readme.html}{Modern UI 1.65}: Because of the new page macro's and changed define and variable names, you have to make some small changes to your scripts, see the \W{../Contrib/Modern UI/Readme.html}{Modern UI Readme} for details. \\<br\\>
|
||||
\R{page}{Custom Pages} now have a leave function. As this parameter is placed before the caption you have to add another "" empty string for the title to work. \\<br\\>
|
||||
\R{onselchange}{.onSelChange} is no longer called when the components page is created
|
||||
|
||||
|
||||
|
|
|
@ -1,37 +1,42 @@
|
|||
\C{intro} Introduction to NSIS
|
||||
|
||||
NSIS is a free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge.
|
||||
|
||||
\B{intro-about} About NSIS
|
||||
|
||||
NSIS exists largely because of the need to distribute Winamp.
|
||||
NSIS, which stands for "Nullsoft Scriptable Installation System", is a free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge. It was originally created by Nullsoft to distribute Winamp and its plug-ins, but is now a system used to distribute hundreds of applications.
|
||||
|
||||
In the beginning, Winamp was distributed as a simple .ZIP file (see Winamp 1.0).
|
||||
Eventually, Winzip was nice enough to give us a license to the Winzip self extractor (see Winamp 2.0)
|
||||
NSIS creates installers that are capable of installing, uninstalling, setting system settings, extracting files, etc. Pretty much anything. Because it's based on script files, you can fully control every part of your installers. The script language support variables, functions, string manipulation, just like a normal programming language - but designed for the creation of installers.
|
||||
|
||||
The self extracting ZIP file became too restrictive, so we started using a custom developed installer. This installer was generated using a combination of "bin2h", batch files, and Visual C++. To add a new file into the distribution, or to have the installer do something new on install, it required writing quite a bit of code. (see Winamp 2.5)
|
||||
Even with all these features, NSIS is still the smallest installer system available. With the default options, it has an overhead of only 34 KB. NSIS installers don't bother decompressing themselves three different times, telling the user to "please wait". They get to the point and get the job done.
|
||||
|
||||
Another thing we needed was a good way to distribute Winamp plug-ins. The solution: PIMP (Plug-In Mini Packager). PIMP was actually based on the custom installer (though was a lot simpler and removed a lot of code), but stored the data and strings that were unique to that installer in a block at the end of the file. It was small and simple, allowing the simple functions of detecting where Winamp was installed and extracting files. The limitations of PIMP were that it could only extract files, and it was designed for small installers (i.e. an 8mb installer would take 8mb of memory).
|
||||
NSIS is released under an open source license (it is actually the zlib/libpng license, which is approved by opensource.org). What does this mean? It means that if you want to add the functionality you need to NSIS, you can. It means if you want to make your own custom version of NSIS (or some product that includes NSIS), and sell it, you can. Or if you just want to distribute your software using NSIS, you sure as hell can. NSIS 2 is now being developed by a team of open source developers.
|
||||
|
||||
NSIS, which stands for "Nullsoft SuperPIMP Installation System" or "Nullsoft Scriptable Installation System" or whatever you want, is based on PIMP but is designed to be much more flexible. NSIS creates installers that are capable of installing, uninstalling, setting system settings, extracting files, etc. Pretty much anything. All with the minimum of overhead- NSIS installers don't bother throwing up a big blue gradient, they don't bother decompressing themselves three different times, telling the user to "please wait". They get to the point and get the job done.
|
||||
|
||||
In order to make NSIS even more powerful than it already is, we have released it under an open source license (it is actually the zlib/libpng license, which is approved by opensource.org). What does this mean? It means that if you want to add the functionality you need to NSIS, you can. It means if you want to make your own custom version of NSIS (or some product that includes NSIS), and sell it, you can. Or if you just want to distribute your software using NSIS, you sure as hell can.
|
||||
|
||||
The result of all of this is an installation system for win32 that lets you compile nice little scripts (which are text files, no wizards to slow you down) into tiny installers. Many features are supported, and the whole thing just works pretty damn well (at least, we think).
|
||||
The result of all of this is an installation system that lets you compile nice little scripts into tiny installers. Many features are supported, and the whole thing just works pretty damn well (at least, we think).
|
||||
|
||||
\B{intro-features} Main Features
|
||||
|
||||
Here's a short list of some of NSIS' features.
|
||||
Here's a short list of some of NSIS' features:
|
||||
|
||||
\b SuperPiMP\\™ technology (so advanced, so amazing, we won't even tell you what it is).
|
||||
\b SuperPiMP\\™ technology (so advanced, so amazing, we won't even tell you what it is)
|
||||
|
||||
\b Generates self contained, win32 executable installer.
|
||||
\b Generates self contained, win32 executable installers
|
||||
|
||||
\b Support for zlib or bzip2 data compression. The installer can compress everything together, or individually.
|
||||
|
||||
\b Uninstall support (installer can automagically generate an uninstaller)
|
||||
|
||||
\b Optional installer self-verification using a CRC32.
|
||||
\b Customizable user interface (dialogs, fonts, backgrounds, icons, text, checkmarks, images etc.)
|
||||
|
||||
\b Compression choices of zlib or bzip2 based compression. The installer can compress everything together, or individually.
|
||||
\b Classic and Modern wizard interface
|
||||
|
||||
\b Fully multilingual, support for multiple languages in one installer. More than 35 translations are available.
|
||||
|
||||
\b Page system that lets you configure the wizard pages and add custom pages
|
||||
|
||||
\b User selection of installation components, treeview for component selection
|
||||
|
||||
\b Multiple install configurations (usually Minimal, Typical, Full), and custom configuration
|
||||
|
||||
\b Installer self-verification using a CRC32
|
||||
|
||||
\b Approximately 20-40k overhead over compressed data size (depending on features enabled, compression algorithm, and so on - the default options are ~34k).
|
||||
|
||||
|
@ -39,25 +44,15 @@ Here's a short list of some of NSIS' features.
|
|||
|
||||
\b Ability to detect destination directory from the registry, and let the user override (or not let them)
|
||||
|
||||
\b Customizable appearance (background, icons, text, checkmarks, images)
|
||||
|
||||
\b Multiple install configurations (usually Minimal, Typical, Full), and custom configuration
|
||||
|
||||
\b Easy to use plug-in system (includes plug-ins for generic dialog construction and user interaction, as well as HTTP downloading)
|
||||
|
||||
\b Fully multilingual. 28 translations available including German, French, Spanish, Italian, Dutch, Chinese and more...
|
||||
\b Easy to use plug-in system (lots of plug-ins for creation of custom dialogs, internet connections, HTTP downloading, file patching, Win32 API calls etc. are included)
|
||||
|
||||
\b Installers can be as large as 2GB (theoretically -- when building on Win9x the limit seems to be around 500MB, however building on NT then installing on Win9x works with larger sizes)
|
||||
|
||||
\b Optional Silent mode for automated installations
|
||||
\b Optional silent mode for automated installations
|
||||
|
||||
\b A primitive preprocessor
|
||||
\b A preprocessor with support for defined symbols, macro's, conditional compilation, standard predefines
|
||||
|
||||
\b User interface changeable from head to toe
|
||||
|
||||
\b An optional modern user interface
|
||||
|
||||
\b A lovely coding experience with elements of PHP and assembly (includes 20 general purpose variables, a stack, real flow control, etc)
|
||||
\b A lovely coding experience with elements of PHP and assembly (includes user variables, a stack, real flow control, etc.)
|
||||
|
||||
\b Installers have their own VMs that let you write code that can support:
|
||||
|
||||
|
@ -65,9 +60,11 @@ Here's a short list of some of NSIS' features.
|
|||
|
||||
\b File extraction (with configurable overwrite parameters)
|
||||
|
||||
\b File/directory copying, renaming, deletion
|
||||
\b File/directory copying, renaming, deletion, searching
|
||||
|
||||
\b DLL loading (ActiveX control registration/deregistration, extension DLL calling, etc)
|
||||
\b Plug-in DLL calling
|
||||
|
||||
\b DLL/ActiveX control registration/deregistration
|
||||
|
||||
\b Executable execution (shell execute and wait options)
|
||||
|
||||
|
@ -79,19 +76,19 @@ Here's a short list of some of NSIS' features.
|
|||
|
||||
\b Generic text file reading/writing
|
||||
|
||||
\b Directory scanning
|
||||
|
||||
\b Powerful string and integer manipulation
|
||||
|
||||
\b Window finding based on class name or title (for is-application-running detection)
|
||||
\b Window finding based on class name or title
|
||||
|
||||
\b Window message sending.
|
||||
\b User interface manipulation (font/text setting)
|
||||
|
||||
\b User interaction with MessageBox.
|
||||
\b Window message sending
|
||||
|
||||
\b User interaction with message boxes or custom pages
|
||||
|
||||
\b Branching, comparisons, etc.
|
||||
|
||||
\b Error checking.
|
||||
\b Error checking
|
||||
|
||||
\b Reboot support, including delete or rename on reboot
|
||||
|
||||
|
@ -99,9 +96,7 @@ Here's a short list of some of NSIS' features.
|
|||
|
||||
\b User functions in script
|
||||
|
||||
\b Callback functions that let you customize the way the installer behaves from script.
|
||||
|
||||
\b Macros in script
|
||||
\b Callback functions for user actions
|
||||
|
||||
\\</ul\\>
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ When the installer starts up it goes through these stages to select the interfac
|
|||
|
||||
\n If no match, take the first language defined in the script
|
||||
|
||||
\n If \R{var1}{$LANGUAGE} has changed during .onInit, go through steps 1 to 3 with the language inside $LANGUAGE instead of the default user language.
|
||||
\n If \R{varconstant}{$LANGUAGE} has changed during .onInit, go through steps 1 to 3 with the language inside $LANGUAGE instead of the default user language.
|
||||
|
||||
\S1{/lang} The /LANG Parameter
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
\S2{initpluginsdir} InitPluginsDir
|
||||
|
||||
Initializes the plugins dir (\R{var2}{$PLUGINSDIR}) if not already initialized.
|
||||
Initializes the plugins dir (\R{varconstant}{$PLUGINSDIR}) if not already initialized.
|
||||
|
||||
\S2{setshellvarcontext} SetShellVarContext
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
\A{modernui} Modern User Interface
|
||||
|
||||
Use the NSIS Modern User Interface to give your installers a modern look.
|
||||
For more info, have a look at the \W{../Contrib/Modern UI/Readme.html}{Modern UI Readme}.
|
||||
If you want to create an installer with a modern user interface (like the wizards of recent Windows versions), have look at the \W{../Contrib/Modern UI/Readme.html}{Modern UI Readme}.
|
|
@ -77,9 +77,21 @@ For more information about sections see \R{functions}{Functions}.
|
|||
|
||||
\S2{tutVariables} Variables
|
||||
|
||||
NSIS offers 20 Variables that can be used in any Section or Function. In addition there is a Stack, which can also be used for temporary storage. To access the stack use the commands \R{Push}{Push} and \R{Pop}{Pop}. Push adds a value to the stack, Pop removes one and sets the variable. For example, the value of $0 is 123.
|
||||
You can decalare your own variables ($VARNAME) with the \R{var}{Var} command. Variables are global and can be used in any Section or Function. For shared code, there are also \R{varother}{20 registers avaibable} (like $0). These static variables don't have to be declared and you won't get any name conflics.
|
||||
|
||||
Now you are going to call the function bla:
|
||||
Declaring and using a user variable:
|
||||
|
||||
\c Var BLA ;Declare the variable
|
||||
\c
|
||||
\c Section bla
|
||||
\c
|
||||
\c StrCpy $BLA "123" ;Now you can use the variable $BLA
|
||||
\c
|
||||
\c SectionEnd
|
||||
|
||||
In addition there is a Stack, which can also be used for temporary storage. To access the stack use the commands \R{Push}{Push} and \R{Pop}{Pop}. Push adds a value to the stack, Pop removes one and sets the variable.
|
||||
|
||||
For example, the value of $0 is 123. Now you are going to call the function bla:
|
||||
|
||||
\c Function bla
|
||||
\c
|
||||
|
@ -96,12 +108,12 @@ After calling the function, the variables contain the same value as before. Note
|
|||
\c Function bla
|
||||
\c
|
||||
\c Push $0
|
||||
\c Push $1
|
||||
\c Push $1
|
||||
\c
|
||||
\c ...code...
|
||||
\c
|
||||
\c Pop $1
|
||||
\c Pop $0
|
||||
\c Pop $1
|
||||
\c Pop $0
|
||||
\c
|
||||
\c FunctionEnd
|
||||
|
||||
|
@ -158,7 +170,7 @@ Every plug-in's function has its own requirements when it comes to parameters, s
|
|||
|
||||
\c nsExec::ExecToLog '"${NSISDIR}\makensis.exe" /CMDHELP'
|
||||
\c InstallOptions::dialog "$PLUGINSDIR\test.ini"
|
||||
\c NSISdl::download http://download.nullsoft.com/winamp/client/winamp281_lite.exe $2
|
||||
\c NSISdl::download http://download.nullsoft.com/winamp/client/winamp291_lite.exe $R0
|
||||
|
||||
The plug-ins that NSIS knows of are listed at the top of the output of the compiler. NSIS searches for plug-ins in the \W{../Plugins/}{Plugins directory} under your NSIS directory and lists all of their available functions. You can use \R{addplugindir}{!addPluginDir} to tell NSIS to search in other directories too.
|
||||
|
||||
|
|
|
@ -16,6 +16,12 @@ Creates a font and puts its handle into user_var. For more information about the
|
|||
|
||||
Adds the string "user_message" to the details view of the installer.
|
||||
|
||||
\S2{enablewindow} EnableWindow
|
||||
|
||||
\c hwnd (1|0)
|
||||
|
||||
Enables or disables mouse and keyboard input to the specified window or control. Possible states are 0 (disabled) or 1 (enabled).
|
||||
|
||||
\S2{findwindow} FindWindow
|
||||
|
||||
\c user_var(hwnd output) windowclass [windowtitle] [windowparent] [childafter]
|
||||
|
|
|
@ -1,8 +1,24 @@
|
|||
\H{var} Variables
|
||||
\H{variables} Variables
|
||||
|
||||
\S1{var1} Modifiable Variables Used in Instructions
|
||||
All variables are global and can be used in Sections or Functions. Variables are case sensitive.
|
||||
|
||||
Note: All Variables provided by NSIS are case sensitive.
|
||||
\S1{varuser} User Variables
|
||||
|
||||
\e{$VARNAME}
|
||||
|
||||
User variables can be declared with the \R{var}{Var} command. You can use these variables to store values, work with sring manipulation etc.
|
||||
|
||||
\S2{var} Var
|
||||
|
||||
\c var_name
|
||||
|
||||
Declare a user variable. Allowed charaters for variables names: [a-z][A-Z][0-9] and '_'.
|
||||
|
||||
\S1{varother} Other Writable Variables
|
||||
|
||||
\e{$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $R0, $R1, $R2, $R3, $R4, $R5, $R6, $R7, $R8, $R9}
|
||||
|
||||
Registers. These variables can be used just like user variables, but are usually used in shared functions or macro's. You don't have to declare these variables, so you won't get any name conflics when using them in shared code. When using these variables in shared code, it's recommended that you use the stack to save and restore their original values. These variables can also be used for communication with plug-ins, because they can be read and written by the plug-in DLL's.
|
||||
|
||||
\e{$INSTDIR}
|
||||
|
||||
|
@ -12,10 +28,6 @@ The installation directory ($INSTDIR is modifiable using \R{StrCpy}{StrCpy}, \R{
|
|||
|
||||
The current output directory (set implicitly via \R{setoutpath}{SetOutPath} or explicitly via \R{StrCpy}{StrCpy}, \R{readregstr}{ReadRegStr}, \R{readinistr}{ReadINIStr}, etc)
|
||||
|
||||
\e{$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, $R0, $R1, $R2, $R3, $R4, $R5, $R6, $R7, $R8, $R9}
|
||||
|
||||
User variables (set via \R{StrCpy}{StrCpy}, \R{readregstr}{ReadRegStr}, \R{readinistr}{ReadINIStr}, etc, and use like any other variable). It is recommended (but not required) that you use $R1-$R9 as local registers, and $0-$9 as global values. Note that any function that lets you specify one of these variables as an output, can use $INSTDIR or $OUTDIR as well (but has different implications).
|
||||
|
||||
\e{$CMDLINE}
|
||||
|
||||
The command line of the installer. The format of the command line can be one of the following:
|
||||
|
@ -30,7 +42,9 @@ The command line of the installer. The format of the command line can be one of
|
|||
|
||||
The identifier of the language that is currently used. For example, English is 1033. You can change this variable in .onInit.
|
||||
|
||||
\S1{var2} Constant Variables Used in Instructions and InstallDir
|
||||
\S1{varconstant} Constant Variables
|
||||
|
||||
Constant variables can also be used in the \R{ainstalldir}{InstallDir} attribute.
|
||||
|
||||
\e{$PROGRAMFILES}
|
||||
|
||||
|
@ -84,12 +98,12 @@ The decimal HWND of the parent window.
|
|||
|
||||
The path to a temporary folder created upon the first usage of a plugin or a call to \R{initpluginsdir}{InitPluginsDir}. This folder is automatically deleted when the installer exits. This makes this folder the ideal folder to hold INI files for \W{../Contrib/InstallOptions/Readme.html}{InstallOptions}, bitmaps for the splash plugin, or any other file that a plugin needs to work.
|
||||
|
||||
\S1{varstrings} Variables Used in Strings
|
||||
|
||||
\e{$$}
|
||||
|
||||
Use to represent $.
|
||||
|
||||
\S1{var3} Variables Used in Strings
|
||||
|
||||
\e{$\\r}
|
||||
|
||||
Use to represent a carriage return (\\r).
|
||||
|
@ -114,4 +128,6 @@ This code will set the name of the installer to "Test Program $\{VERSION\}". The
|
|||
\c !define VERSION "V.1.0"
|
||||
\c Name "Test Program ${VERSION}"
|
||||
|
||||
This code sets the name of the installer to "Test Program V.1.0"
|
||||
This code sets the name of the installer to "Test Program V.1.0"
|
||||
|
||||
For more info, see \R{compdefines}{Conditional Compilation}.
|
Loading…
Add table
Add a link
Reference in a new issue