root / tmp / org.txm.setups / nsis / Examples / silent.nsi @ 1131
Historique | Voir | Annoter | Télécharger (2,17 ko)
1 | 728 | mdecorde | # This example shows how to handle silent installers. |
---|---|---|---|
2 | 728 | mdecorde | # In short, you need IfSilent and the /SD switch for MessageBox to make your installer |
3 | 728 | mdecorde | # really silent when the /S switch is used. |
4 | 728 | mdecorde | |
5 | 728 | mdecorde | Name "Silent" |
6 | 728 | mdecorde | OutFile "silent.exe" |
7 | 728 | mdecorde | RequestExecutionLevel user |
8 | 728 | mdecorde | |
9 | 728 | mdecorde | # uncomment the following line to make the installer silent by default. |
10 | 728 | mdecorde | ; SilentInstall silent |
11 | 728 | mdecorde | |
12 | 728 | mdecorde | Function .onInit |
13 | 728 | mdecorde | # `/SD IDYES' tells MessageBox to automatically choose IDYES if the installer is silent |
14 | 728 | mdecorde | # in this case, the installer can only be silent if the user used the /S switch or if |
15 | 728 | mdecorde | # you've uncommented line number 5 |
16 | 728 | mdecorde | MessageBox MB_YESNO|MB_ICONQUESTION "Would you like the installer to be silent from now on?" \ |
17 | 728 | mdecorde | /SD IDYES IDNO no IDYES yes |
18 | 728 | mdecorde | |
19 | 728 | mdecorde | # SetSilent can only be used in .onInit and doesn't work well along with `SetSilent silent' |
20 | 728 | mdecorde | |
21 | 728 | mdecorde | yes: |
22 | 728 | mdecorde | SetSilent silent |
23 | 728 | mdecorde | Goto done |
24 | 728 | mdecorde | no: |
25 | 728 | mdecorde | SetSilent normal |
26 | 728 | mdecorde | done: |
27 | 728 | mdecorde | FunctionEnd |
28 | 728 | mdecorde | |
29 | 728 | mdecorde | Section |
30 | 728 | mdecorde | IfSilent 0 +2 |
31 | 728 | mdecorde | MessageBox MB_OK|MB_ICONINFORMATION 'This is a "silent" installer' |
32 | 728 | mdecorde | |
33 | 728 | mdecorde | # there is no need to use IfSilent for this one because the /SD switch takes care of that |
34 | 728 | mdecorde | MessageBox MB_OK|MB_ICONINFORMATION "This is not a silent installer" /SD IDOK |
35 | 728 | mdecorde | |
36 | 728 | mdecorde | # when `SetOverwrite on' (which is the default) is used, the installer will show a message |
37 | 728 | mdecorde | # if it can't open a file for writing. On silent installers, the ignore option will be |
38 | 728 | mdecorde | # automatically selected. if `AllowSkipFiles off' (default is on) was used, there is no |
39 | 728 | mdecorde | # ignore option and the cancel option will be automatically selected. |
40 | 728 | mdecorde | |
41 | 728 | mdecorde | # on is default |
42 | 728 | mdecorde | ; AllowSkipFiles on |
43 | 728 | mdecorde | |
44 | 728 | mdecorde | # lock file |
45 | 728 | mdecorde | FileOpen $0 $TEMP\silentOverwrite w |
46 | 728 | mdecorde | # try to extract - will fail |
47 | 728 | mdecorde | File /oname=$TEMP\silentOverwrite silent.nsi |
48 | 728 | mdecorde | # unlcok |
49 | 728 | mdecorde | FileClose $0 |
50 | 728 | mdecorde | |
51 | 728 | mdecorde | # this will always show on silent installers because ignore is the option automatically |
52 | 728 | mdecorde | # selected when a file can't be opened for writing on a silent installer |
53 | 728 | mdecorde | MessageBox MB_OK|MB_ICONINFORMATION "This message box always shows if the installer is silent" |
54 | 728 | mdecorde | |
55 | 728 | mdecorde | AllowSkipFiles off |
56 | 728 | mdecorde | |
57 | 728 | mdecorde | # lock file |
58 | 728 | mdecorde | FileOpen $0 $TEMP\silentOverwrite w |
59 | 728 | mdecorde | # try to extract - will fail |
60 | 728 | mdecorde | File /oname=$TEMP\silentOverwrite silent.nsi |
61 | 728 | mdecorde | # unlcok |
62 | 728 | mdecorde | FileClose $0 |
63 | 728 | mdecorde | SectionEnd |