Added \R{ref}{name} for named references
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2315 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
96eb3b0537
commit
8a97b60b30
19 changed files with 45 additions and 36 deletions
|
@ -16,7 +16,7 @@ Adds a branding image on the top of the installer or on the left. Its size will
|
|||
|
||||
\c true|\\<b\\>false\\</b\\>
|
||||
|
||||
Controls whether or not installs are enabled to the root directory of a drive, or directly into a network share. Set to 'true' to change the safe behavior, which prevents users from selecting C:\\ or \\\\Server\\Share as an install (and later on, uninstall) directory. For additional directory selection page customizability, see .onVerifyInstDir (\k{onverifyinstdir}).
|
||||
Controls whether or not installs are enabled to the root directory of a drive, or directly into a network share. Set to 'true' to change the safe behavior, which prevents users from selecting C:\\ or \\\\Server\\Share as an install (and later on, uninstall) directory. For additional directory selection page customizability, see \R{onverifyinstdir}{.onVerifyInstDir}.
|
||||
|
||||
\S2{aautoclosewindow} AutoCloseWindow
|
||||
|
||||
|
@ -40,7 +40,7 @@ Sets the text that is shown (by default it is 'Nullsoft Install System vX.XX') i
|
|||
|
||||
\c [/LANG=lang_id] caption
|
||||
|
||||
Sets what the titlebars of the installer will display. By default, it is 'Name Setup', where Name is specified with the Name command (See \k{aname}). You can, however, override it with 'MyApp Installer' or whatever. If you specify an empty string (""), the default will be used (you can however specify " " to achieve a blank string)
|
||||
Sets what the titlebars of the installer will display. By default, it is 'Name Setup', where Name is specified with the \R{aname}{Name command}. You can, however, override it with 'MyApp Installer' or whatever. If you specify an empty string (""), the default will be used (you can however specify " " to achieve a blank string)
|
||||
|
||||
\S2{achangeui} ChangeUI
|
||||
|
||||
|
@ -140,7 +140,7 @@ This attribute tells the installer to check a string in the registry, and use it
|
|||
|
||||
\c [flag [...]]
|
||||
|
||||
Valid values for flag are "smooth" (smooth the progress bar) or "colored" (color the progress bar with the colors set by InstallColors. Examples: "InstProgressFlags" (default old-school windows look), "InstProgressFlags smooth" (new smooth look), "InstProgressFlags smooth colored" (colored smooth look whee). Note: neither "smooth" or "colored" work with XPStyle on (see \k{axpstyle}) when the installer runs on Windows XP with a modern theme.
|
||||
Valid values for flag are "smooth" (smooth the progress bar) or "colored" (color the progress bar with the colors set by InstallColors. Examples: "InstProgressFlags" (default old-school windows look), "InstProgressFlags smooth" (new smooth look), "InstProgressFlags smooth colored" (colored smooth look whee). Note: neither "smooth" or "colored" work with \R{axpstyle}{XPStyle} on when the installer runs on Windows XP with a modern theme.
|
||||
|
||||
\S2{ainsttype} InstType
|
||||
|
||||
|
@ -220,13 +220,13 @@ Sets whether or not the details of the uninstall are shown. Can be 'hide' to hid
|
|||
|
||||
\c \\<b\\>normal\\</b\\>|silent|silentlog
|
||||
|
||||
Specifies whether or not the installer should be silent. If it is 'silent' or 'silentlog', all sections that have the SF_SELECTED flag are installed quietly (you can set this flag using SectionSetFlags [see \k{sectionsetflags}]), with no screen output from the installer itself (MessageBoxes are still displayed on error, and the script can still display whatever it wants). Note that if this is set to 'normal' and the user runs the installer with /S on the command line, it will behave as if SilentInstall 'silent' was used. Note: see also LogSet (\k{logset}).
|
||||
Specifies whether or not the installer should be silent. If it is 'silent' or 'silentlog', all sections that have the SF_SELECTED flag are installed quietly (you can set this flag using see \R{sectionsetflags}{SectionSetFlags}), with no screen output from the installer itself (MessageBoxes are still displayed on error, and the script can still display whatever it wants). Note that if this is set to 'normal' and the user runs the installer with /S on the command line, it will behave as if SilentInstall 'silent' was used. Note: see also \R{logset}{LogSet}.
|
||||
|
||||
\S2{asilentuninstall} SilentUnInstall
|
||||
|
||||
\c \\<b\\>normal\\</b\\>|silent
|
||||
|
||||
Specifies whether or not the uninstaller should be silent. If it is 'silent' or 'silentlog', the uninstall section will run quietly, with no screen output from the uninstaller itself (MessageBoxes are still displayed on error, and the script can still display whatever it wants). Note that if this is set to 'normal' and the user runs the uninstaller with /S on the command line, it will behave as if SilentUnInstall 'silent' was used. Note: see also LogSet (\k{logset}).
|
||||
Specifies whether or not the uninstaller should be silent. If it is 'silent' or 'silentlog', the uninstall section will run quietly, with no screen output from the uninstaller itself (MessageBoxes are still displayed on error, and the script can still display whatever it wants). Note that if this is set to 'normal' and the user runs the uninstaller with /S on the command line, it will behave as if SilentUnInstall 'silent' was used. Note: see also \R{logset}{LogSet}.
|
||||
|
||||
\S2{aspacetexts} SpaceTexts
|
||||
|
||||
|
@ -244,7 +244,7 @@ Overrides the subcaptions for each of the installer pages (0=": License Agreemen
|
|||
|
||||
\c [/LANG=lang_id] button text
|
||||
|
||||
Changes the text of the button that by default says "Uninstall" in the uninstaller. If no parameter is specified, the default text is used. See also WriteUninstaller in \k{WriteUninstaller} (replaces UninstallEXEName).
|
||||
Changes the text of the button that by default says "Uninstall" in the uninstaller. If no parameter is specified, the default text is used. See also \R{WriteUninstaller}{WriteUninstaller} (replaces UninstallEXEName).
|
||||
|
||||
\S2{auninstallcaption} UninstallCaption
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ Remove the specified directory (which should be a full path). Without /r, the di
|
|||
|
||||
Reserves a file in the data block for later use. As files are added in the order they are used in the script files that are used in the .onInit function, for example, might be added last and slow the loading of the installer. This is where this command comes useful, allowing you to speed up the loading process by including the file at the top of the data block instead of letting NSIS seek all the way down to the bottom of the \e{compressed} data block.
|
||||
|
||||
See File (\K{file}) for more information about the parameters.
|
||||
See \R{file}{File} for more information about the parameters.
|
||||
|
||||
\S2{setoutpath} SetOutPath
|
||||
|
||||
|
|
Binary file not shown.
|
@ -1426,6 +1426,7 @@ static void xhtml_rdaddwc(rdstringc * rs, word * text, word * end)
|
|||
|
||||
case word_UpperXref:
|
||||
case word_LowerXref:
|
||||
case word_FreeTextXref:
|
||||
kwl = kw_lookup(keywords, text->text);
|
||||
if (kwl) {
|
||||
sect = xhtml_find_section(kwl->para);
|
||||
|
|
|
@ -145,7 +145,8 @@ enum {
|
|||
word_XrefEnd, /* (invisible; no text) */
|
||||
word_IndexRef, /* (always an invisible one) */
|
||||
word_HyperLink, /* (invisible) */
|
||||
word_HyperEnd /* (also invisible; no text) */
|
||||
word_HyperEnd, /* (also invisible; no text) */
|
||||
word_FreeTextXref /* \R */
|
||||
};
|
||||
/* aux values for attributed words */
|
||||
enum {
|
||||
|
|
|
@ -190,6 +190,7 @@ enum {
|
|||
c_i, /* visible index mark */
|
||||
c_ii, /* uncapitalised visible index mark */
|
||||
c_k, /* uncapitalised cross-reference */
|
||||
c_R, /* free text cross-reference */
|
||||
c_n, /* numbered list */
|
||||
c_nocite, /* bibliography trickery */
|
||||
c_preamble, /* document preamble text */
|
||||
|
@ -267,6 +268,9 @@ static void match_kw(token * tok)
|
|||
"K", c_K}
|
||||
, /* capitalised cross-reference */
|
||||
{
|
||||
"R", c_R}
|
||||
, /* free text cross-reference */
|
||||
{
|
||||
"U", c_U}
|
||||
, /* unnumbered-chapter heading */
|
||||
{
|
||||
|
@ -1092,6 +1096,7 @@ static void read_file(paragraph *** ret, input * in, indexdata * idx)
|
|||
break;
|
||||
case c_K:
|
||||
case c_k:
|
||||
case c_R:
|
||||
case c_W:
|
||||
case c_date:
|
||||
/*
|
||||
|
@ -1105,6 +1110,8 @@ static void read_file(paragraph *** ret, input * in, indexdata * idx)
|
|||
wd.type = word_UpperXref;
|
||||
else if (t.cmd == c_k)
|
||||
wd.type = word_LowerXref;
|
||||
else if (t.cmd == c_R)
|
||||
wd.type = word_FreeTextXref;
|
||||
else if (t.cmd == c_W)
|
||||
wd.type = word_HyperLink;
|
||||
else
|
||||
|
@ -1154,7 +1161,7 @@ static void read_file(paragraph *** ret, input * in, indexdata * idx)
|
|||
addword(wd, &idximplicit);
|
||||
}
|
||||
sfree(wdtext);
|
||||
if (wd.type == word_HyperLink) {
|
||||
if (wd.type == word_FreeTextXref || wd.type == word_HyperLink) {
|
||||
/*
|
||||
* Hyperlinks are different: they then
|
||||
* expect another left brace, to begin
|
||||
|
|
|
@ -115,7 +115,7 @@ Example:
|
|||
|
||||
This callback will be called just before the first page is loaded and the installer dialog is shown, allowing you to tweak the user interface.
|
||||
|
||||
Have a look at .onGUIInit (\K{onguiinit}) for an example.
|
||||
Have a look at \R{onguiinit}{.onGUIInit} for an example.
|
||||
|
||||
\S3{unonInit} un.onInit
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
\c user_message
|
||||
|
||||
Cancels the install, stops execution of script, and displays user_message in the status display. Note: you can use this from Callback Functions (\k{callbacks}) to do special things. Pages callbacks (\K{pages}) also uses Abort for special purposes.
|
||||
Cancels the install, stops execution of script, and displays user_message in the status display. Note: you can use this from \R{callbacks}{Callback functions} to do special things. \R{pages}{Page callbacks} also uses Abort for special purposes.
|
||||
|
||||
\S2{call} Call
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ Creates (recursively if necessary) the specified directory. The error flag is se
|
|||
Creates a shortcut 'link.lnk' that links to 'target.file', with optional parameters 'parameters'.
|
||||
The icon used for the shortcut is 'icon.file,icon_index_number'; for default icon settings use empty strings for both icon.file and icon_index_number.
|
||||
start_options should be one of: \e{SW_SHOWNORMAL}, \e{SW_SHOWMAXIMIZED}, \e{SW_SHOWMINIMIZED}, or an empty string.
|
||||
keyboard_shortcut should be in the form of 'flag|c' where flag can be a combination (using |) of: \e{ALT}, \e{CONTROL}, \e{EXT}, or \e{SHIFT}. c is the character to use (a-z, A-Z, 0-9, F1-F24, etc). Note that no spaces are allowed in this string. A good example is "ALT|CONTROL|F8". $OUTDIR is used for the working directory. You can change it by using SetOutPath (See \k{setoutpath}) before creating the Shortcut.
|
||||
keyboard_shortcut should be in the form of 'flag|c' where flag can be a combination (using |) of: \e{ALT}, \e{CONTROL}, \e{EXT}, or \e{SHIFT}. c is the character to use (a-z, A-Z, 0-9, F1-F24, etc). Note that no spaces are allowed in this string. A good example is "ALT|CONTROL|F8". $OUTDIR is used for the working directory. You can change it by using \R{setoutpath}{SetOutPath} before creating the Shortcut.
|
||||
description should be the description of the shortcut, or comment as it is called under XP.
|
||||
The error flag is set if the shortcut cannot be created (i.e. the path does not exist, or some other error).
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
|
||||
\b Faster and better MakeNSISw integration
|
||||
|
||||
\b New .NET Framework detection function in \k{detect.netframework}
|
||||
\b \R{detect.netframework}{New .NET Framework detection function}
|
||||
|
||||
\b Minor bugfixes
|
||||
|
||||
|
|
|
@ -105,6 +105,6 @@ Here's a short list of some of NSIS' features.
|
|||
|
||||
\\</ul\\>
|
||||
|
||||
\b Completely free for any use. See license (\k{license}).
|
||||
\b Completely free for any use. See \R{license}{license}.
|
||||
|
||||
\b More
|
||||
|
|
|
@ -41,7 +41,7 @@ Use:
|
|||
|
||||
As of version 2 NSIS fully supports multiple languages. An installer can have more than one language. Each string in the installer can be easily translated, and so can script strings such as messages in a message box.
|
||||
|
||||
Each installer has one or more language table which holds references to strings in the strings table. To create a language table all you need to do is use LoadLanguageFile (See \k{loadlanguagefile}), define strings used in your installer for that language such as Name and Caption, message box, install type, and other strings using LangString or LangStringUP (See \k{langstring}) and you have built your installer a language table.
|
||||
Each installer has one or more language table which holds references to strings in the strings table. To create a language table all you need to do is use \R{loadlanguagefile}{LoadLanguageFile}, define strings used in your installer for that language such as Name and Caption, message box, install type, and other strings using \R{langstring}{LangString} or \R{langstring}{LangStringUP} and you have built your installer a language table.
|
||||
|
||||
For an example of usage see \W{../Examples/languages.nsi}{languages.nsi}.
|
||||
|
||||
|
@ -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 $LANGUAGE (\K{var1}) has changed during .onInit, go through steps 1 to 3 with the language inside $LANGUAGE instead of the default user language.
|
||||
\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.
|
||||
|
||||
\S1{/lang} The /LANG Parameter
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
\S2{initpluginsdir} InitPluginsDir
|
||||
|
||||
Initializes the plugins dir ($PLUGINSDIR, see \k{var2}) if not initialized already.
|
||||
Initializes the plugins dir (\R{var2}{$PLUGINSDIR}) if not already initialized.
|
||||
|
||||
\S2{setshellvarcontext} SetShellVarContext
|
||||
|
||||
|
|
|
@ -21,11 +21,11 @@ If you don't use any Page command the installer pages order will be just as in o
|
|||
|
||||
\S{pagecallbacks} Callbacks
|
||||
|
||||
Each built-in page has three callback functions. The pre-function, the show-creation function and the leave-function. The pre-function is called right before the page is created, the show-function is called right after it is created and before it is showen so you can tweak its user interface with CreateFont (\K{createfont}), SetStaticBkColor (\K{setstaticbkcolor}) and SendMessage (\K{sendmessage}); the leave-function is called right after the user has pressed the next button and before the page is left.
|
||||
Each built-in page has three callback functions. The pre-function, the show-creation function and the leave-function. The pre-function is called right before the page is created, the show-function is called right after it is created and before it is showen so you can tweak its user interface with \R{createfont}{CreateFont}, \R{setstaticbkcolor}{SetStaticBkColor } and \R{sendmessage}{SendMessage}; the leave-function is called right after the user has pressed the next button and before the page is left.
|
||||
|
||||
A custom page has only one callback function that creates it but unlike the built-in pages this function is mandatory.
|
||||
|
||||
Use Abort (see \K{abort}) from a built-in page's pre-function to skip the page, and from a built-in page's leave-function to stay in the page.
|
||||
Use \R{abort}{Abort} from a built-in page's pre-function to skip the page, and from a built-in page's leave-function to stay in the page.
|
||||
|
||||
Examples:
|
||||
|
||||
|
|
|
@ -28,4 +28,4 @@ CallInstDLL has an option not to unload the DLL after usage. To use it with the
|
|||
|
||||
\c InstallOptions::dialog /NOUNLOAD "ini_file_location.ini"
|
||||
|
||||
You can also use SetPluginUnload alawysoff (See \k{setpluginunload}) to avoid writing /NOUNLOAD each and every time you use the same plugin.
|
||||
You can also use \R{setpluginunload}{SetPluginUnload} alawysoff to avoid writing /NOUNLOAD each and every time you use the same plugin.
|
|
@ -30,7 +30,7 @@ This command closes the current open section.
|
|||
|
||||
\c insttype_index [insttype_index] [RO]
|
||||
|
||||
This command specifies which install types (see InstType - \k{ainsttype}) the current section defaults to the enabled state in. Multiple SectionIn commands can be specified (they are combined). If you specify RO as a parameter, then the section will be read-only, meaning the user won't be able to change its state.
|
||||
This command specifies which install types (see \R{ainsttype}{InstType}) the current section defaults to the enabled state in. Multiple SectionIn commands can be specified (they are combined). If you specify RO as a parameter, then the section will be read-only, meaning the user won't be able to change its state.
|
||||
|
||||
\S2{ssubsection} SubSection
|
||||
|
||||
|
|
|
@ -21,21 +21,21 @@ If you want to use a double-quote in a string you can either use \\$" to esapce
|
|||
|
||||
For more details about the script format, see \k{fileformat}.
|
||||
|
||||
The default extension for a script file is .nsi. Header files have the .nsh extension. Header files can help you arrange your script by dividing it to more than one block of code, you can also put functions or macros in header files and include the header files in multiple installers. This makes updating easier and it also makes your scripts easier to read. To include a header file in your script use !include (see \k{include}). Header files that reside in the Include directory under your NSIS directory can be included just by their name. For example:
|
||||
The default extension for a script file is .nsi. Header files have the .nsh extension. Header files can help you arrange your script by dividing it to more than one block of code, you can also put functions or macros in header files and include the header files in multiple installers. This makes updating easier and it also makes your scripts easier to read. To include a header file in your script use \R{include}{!include}. Header files that reside in the Include directory under your NSIS directory can be included just by their name. For example:
|
||||
|
||||
\c !include Sections.nsh
|
||||
|
||||
\H{tutstructure} Scripting structure
|
||||
|
||||
A NSIS script can contain Installer Attributes and Sections/Functions. You can also use Compiler Commands for compile-time operations. The minimum is OutFile (\k{aoutfile}), which tells NSIS where to write the installer, and one section.
|
||||
A NSIS script can contain Installer Attributes and Sections/Functions. You can also use Compiler Commands for compile-time operations. The minimum is \R{aoutfile}{OutFile}, which tells NSIS where to write the installer, and one section.
|
||||
|
||||
\S1{installerattributes} Installer Attributes
|
||||
|
||||
Installer Attributes determine the behavior and the look and feel of your installer. With these attributes you can define what pages are shown in which order, texts that will be shown during the installation, the number of installation types etc. Most of these commands can only be set and are not changeable during runtime.
|
||||
|
||||
The most basic attributes are Name (\k{aname}), InstallDir (\k{ainstalldir}) and DirText (\k{adirtext}).
|
||||
The most basic attributes are \R{aname}{Name}, \R{ainstalldir}{InstallDir} and \R{adirtext}{DirText}.
|
||||
|
||||
For more information about installer attributes, have a look at \k{instattribs}
|
||||
For more information about installer attributes, have a look at \k{instattribs}.
|
||||
|
||||
\S1{tut-sections} Sections
|
||||
|
||||
|
@ -43,7 +43,7 @@ In a common installer there are several things the user can install. For example
|
|||
|
||||
The instructions that can be used in sections are very different from the installer attributes instructions, they are executed at runtime on the user's computer. Those instructions can extract files, read from and write to the registry, INI files or normal files, create directories, create shortcuts and a lot more. You can find out about those instructions in \k{instr}.
|
||||
|
||||
The most basic instructions are SetOutPath which tells the installer where to extract files (\k{setoutpath}) and File which extracts files (\k{file}).
|
||||
The most basic instructions are \R{setoutpath}{SetOutPath} which tells the installer where to extract files and \R{file}{File} which extracts files.
|
||||
|
||||
Example:
|
||||
|
||||
|
@ -59,7 +59,7 @@ For more information about sections see \k{sections}.
|
|||
|
||||
Functions, just like sections, can contain code. The difference between sections and functions is the way they are called. There are two types of functions, user functions and callback functions.
|
||||
|
||||
User functions are called by the user from within sections or other functions using the Call instruction (\k{call}). User functions will not execute unless you call them. After the code of the function will be executed the installer will continue executing the instructions that came after the Call instruction, unless you have aborted the installation inside the function. User functions are very useful if you have a set of instructions that need to be executed at several locations in the installers. If you put the code into a function you can save the copying time and you can maintain the code more easily.
|
||||
User functions are called by the user from within sections or other functions using the \R{call}{Call} instruction. User functions will not execute unless you call them. After the code of the function will be executed the installer will continue executing the instructions that came after the Call instruction, unless you have aborted the installation inside the function. User functions are very useful if you have a set of instructions that need to be executed at several locations in the installers. If you put the code into a function you can save the copying time and you can maintain the code more easily.
|
||||
|
||||
Callback functions are called by the installer upon certain defined events such as when the installer starts. Callbacks are optional. If for example you want to welcome the user to your installer you will define a function called .onInit. The NSIS compiler will recongnize this function as a callback function by the name and will call it when the installer starts.
|
||||
|
||||
|
@ -69,7 +69,7 @@ Callback functions are called by the installer upon certain defined events such
|
|||
\c gogogo:
|
||||
\c FunctionEnd
|
||||
|
||||
Abort (\k{abort}) has a special meaning in callback functions. Each callback function has its own meaning for it, have a look at \k{callbacks} for more information. In the above example Abort tells the installer to stop initializing the installer and quit immediately.
|
||||
\R{abort}{Abort} has a special meaning in callback functions. Each callback function has its own meaning for it, have a look at \k{callbacks} for more information. In the above example Abort tells the installer to stop initializing the installer and quit immediately.
|
||||
|
||||
For more information about sections see \k{functions}.
|
||||
|
||||
|
@ -83,7 +83,7 @@ Compiler commands will be executed on compile time on your computer. They can be
|
|||
|
||||
For more information about defines see \k{compdefines}.
|
||||
|
||||
Another common use is macros. Macros are used to insert code on compile time, depending on defines and using the values of the defines. An example of a macro is UpgradeDLL (See \k{upgradedll}), which you can use to upgrade a DLL file. The macro's commands are inserts at compile time. This allows you to write a general code only once and use it a lot of times but with a few changes. For example:
|
||||
Another common use is macros. Macros are used to insert code on compile time, depending on defines and using the values of the defines. An example of a macro is \R{upgradedll}{UpgradeDLL}, which you can use to upgrade a DLL file. The macro's commands are inserts at compile time. This allows you to write a general code only once and use it a lot of times but with a few changes. For example:
|
||||
|
||||
\c !macro MyFunc UN
|
||||
\c Function ${UN}MyFunc
|
||||
|
@ -107,7 +107,7 @@ To compile you have to right-click your .nsi file and select Compile NSI or Comp
|
|||
|
||||
The compiler will check your script and give you warnings or an error. If an errors occurs (i.e. 2 parameters required but only 1 given) the compiler will abort and a short error message including the line number will be displayed. For non-critical error the compiler will give a warning (i.e. two DirText commands in one script). If your script has no errors the compiler will output an installer for you to distribute.
|
||||
|
||||
NSIS supports different compression methods zlib and bzip2. zlib is fast and is very efficient in resources consumption. bzip2 usually gives better results for large installers, but requires a bit more memory and is a little slower. To set the compressor use SetCompressor (\k{asetcompressor}).
|
||||
NSIS supports different compression methods zlib and bzip2. zlib is fast and is very efficient in resources consumption. bzip2 usually gives better results for large installers, but requires a bit more memory and is a little slower. To set the compressor use \R{asetcompressor}{SetCompressor}.
|
||||
|
||||
\H{tutenhancing} Enhancing NSIS
|
||||
|
||||
|
@ -123,13 +123,13 @@ Every plug-in's function has its own requirements when it comes to parameters, s
|
|||
\c InstallOptions::dialog "$PLUGINSDIR\test.ini"
|
||||
\c NSISdl::download http://download.nullsoft.com/winamp/client/winamp281_lite.exe $2
|
||||
|
||||
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 !addPluginDir (\k{addplugindir}) to tell NSIS to search in other directories too.
|
||||
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.
|
||||
|
||||
There are several plug-ins that come with the NSIS distribution. \W{../Contrib/InstallOptions/Readme.html}{InstallOptions} is a popular plug-in that allows you to add custom pages to your installer, in combination with the NSIS Page commands (See \k{pages}). The \W{../Contrib/StartMenu/Readme.txt}{Startmenu plug-in} provides a page that allows the user to choose a Start Menu folder. There are a lot of plug-ins for different purposes, have a look at the \W{../Contrib/}{Contrib directory} for help files and examples. You can find additional plug-ins at the on-line \W{http://nsis.sf.net/archive/}{NSIS Archive}.
|
||||
|
||||
You can also create a plug-in of your own if you know programming. \W{../Contrib/ExDLL}{ExDLL} is the basic plug-in example. As all of the plug-ins packed with NSIS and most of the plug-ins in the archive come with source code you can have a look at the \W{../Contrib/}{Contrib directory} and the on-line \W{http://nsis.sf.net/archive/}{NSIS Archive} for more examples.
|
||||
|
||||
You can also customize the dialog resources without modifying or recompiling the source code. Use a resource editor to customize one of the \W{../Contrib/UIs/}{UI files} and use the ChangeUI command (See \k{achangeui}) to use the customized resources.
|
||||
You can also customize the dialog resources without modifying or recompiling the source code. Use a resource editor to customize one of the \W{../Contrib/UIs/}{UI files} and use the \R{achangeui}{ChangeUI} command to use the customized resources.
|
||||
|
||||
A popular user interface for NSIS is the Modern User Interface, with an interface like the wizards of recent Windows versions. The Modern UI is not only a customized resource file, it has a lots of new interface elements. It features a white header to describe the current step, a description area on the component page, a Finish page that allows you to run the application or reboot the system and more. The Modern UI language files make it easy to create a multilingual installer, because they contain translations for every label in the installer.
|
||||
|
||||
|
|
|
@ -50,9 +50,9 @@ If both NoModify and NoRepair are set to 1, the button displays "Remove" instead
|
|||
|
||||
\H{usefulvb6_runtime} How to install the VB6 runtimes
|
||||
|
||||
The best way to install the VB6 runtimes is to use the UpgradeDLL macro (See \k{upgradedll}) to upgrade the DLL files, and the AddSharedDLL macro (See \k{addshareddll}) when installing the software for the first time to increase the shared DLL count. Define UPGRADEDLL_NOREGISTER before upgrading Stdole2.tlb (and undefine it before upgrading other files).
|
||||
The best way to install the VB6 runtimes is to use the \R{upgradedll}{UpgradeDLL macro} to upgrade the DLL files, and the \R{addshareddll}{AddSharedDLL macro} when installing the software for the first time to increase the shared DLL count. Define UPGRADEDLL_NOREGISTER before upgrading Stdole2.tlb (and undefine it before upgrading other files).
|
||||
|
||||
Use the Modern UI with a Finish page to ask for a reboot if required or use IfRebootFlag (\k{IfRebootFlag}) and make your own page or messagebox.
|
||||
Use the Modern UI with a Finish page to ask for a reboot if required or use \R{IfRebootFlag}{IfRebootFlag} and make your own page or messagebox.
|
||||
|
||||
You can extract the files from vbrun60sp5.exe using any archiver that supports CAB compression, or if you have installed the latest version on your system, copy the following files from your system directory:
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ The command line of the installer. The format of the command line can be one of
|
|||
|
||||
\b installer.exe PARAMETER PARAMETER PARAMETER
|
||||
|
||||
\b For parsing out the PARAMETER portion, see GetParameters on the useful functions appendix (See \k{getparameters}). If /D= is specified on the command line (to override the install directory) it won't show up in $CMDLINE.
|
||||
\b For parsing out the PARAMETER portion, see GetParameters on the \R{getparameters}{useful functions appendix}. If /D= is specified on the command line (to override the install directory) it won't show up in $CMDLINE.
|
||||
|
||||
\e{$LANGUAGE}
|
||||
|
||||
|
@ -82,7 +82,7 @@ The decimal HWND of the parent window.
|
|||
|
||||
\e{$PLUGINSDIR}
|
||||
|
||||
The path to a temporary folder created upon the first usage of a plugin or a call to InitPluginsDir (See \k{initpluginsdir}). This folder is automatically deleted when the installer exits. This makes this folder the ideal folder to hold INI files for InstallOptions, bitmaps for the splash plugin, or any other file that a plugin needs to work.
|
||||
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 InstallOptions, bitmaps for the splash plugin, or any other file that a plugin needs to work.
|
||||
|
||||
\e{$$}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue