root / tmp / org.txm.setups / nsis / Include / MultiUser.nsh @ 1105
Historique | Voir | Annoter | Télécharger (13,04 ko)
1 | 728 | mdecorde | /* |
---|---|---|---|
2 | 728 | mdecorde | |
3 | 728 | mdecorde | MultiUser.nsh |
4 | 728 | mdecorde | |
5 | 728 | mdecorde | Installer configuration for multi-user Windows environments |
6 | 728 | mdecorde | |
7 | 728 | mdecorde | Copyright 2008-2015 Joost Verburg |
8 | 728 | mdecorde | |
9 | 728 | mdecorde | */ |
10 | 728 | mdecorde | |
11 | 728 | mdecorde | !ifndef MULTIUSER_INCLUDED |
12 | 728 | mdecorde | !define MULTIUSER_INCLUDED |
13 | 728 | mdecorde | !verbose push |
14 | 728 | mdecorde | !verbose 3 |
15 | 728 | mdecorde | |
16 | 728 | mdecorde | ;Standard NSIS header files |
17 | 728 | mdecorde | |
18 | 728 | mdecorde | !ifdef MULTIUSER_MUI |
19 | 728 | mdecorde | !include MUI2.nsh |
20 | 728 | mdecorde | !endif |
21 | 728 | mdecorde | !include nsDialogs.nsh |
22 | 728 | mdecorde | !include LogicLib.nsh |
23 | 728 | mdecorde | !include WinVer.nsh |
24 | 728 | mdecorde | !include FileFunc.nsh |
25 | 728 | mdecorde | |
26 | 728 | mdecorde | ;Variables |
27 | 728 | mdecorde | |
28 | 728 | mdecorde | Var MultiUser.Privileges |
29 | 728 | mdecorde | Var MultiUser.InstallMode |
30 | 728 | mdecorde | |
31 | 728 | mdecorde | ;Command line installation mode setting |
32 | 728 | mdecorde | |
33 | 728 | mdecorde | !ifdef MULTIUSER_INSTALLMODE_COMMANDLINE |
34 | 728 | mdecorde | !include StrFunc.nsh |
35 | 728 | mdecorde | !ifndef StrStr_INCLUDED |
36 | 728 | mdecorde | ${StrStr} |
37 | 728 | mdecorde | !endif |
38 | 728 | mdecorde | !ifndef MULTIUSER_NOUNINSTALL |
39 | 728 | mdecorde | !ifndef UnStrStr_INCLUDED |
40 | 728 | mdecorde | ${UnStrStr} |
41 | 728 | mdecorde | !endif |
42 | 728 | mdecorde | !endif |
43 | 728 | mdecorde | |
44 | 728 | mdecorde | Var MultiUser.Parameters |
45 | 728 | mdecorde | Var MultiUser.Result |
46 | 728 | mdecorde | !endif |
47 | 728 | mdecorde | |
48 | 728 | mdecorde | ;Installation folder stored in registry |
49 | 728 | mdecorde | |
50 | 728 | mdecorde | !ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME |
51 | 728 | mdecorde | Var MultiUser.InstDir |
52 | 728 | mdecorde | !endif |
53 | 728 | mdecorde | |
54 | 728 | mdecorde | !ifdef MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY & MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME |
55 | 728 | mdecorde | Var MultiUser.DefaultKeyValue |
56 | 728 | mdecorde | !endif |
57 | 728 | mdecorde | |
58 | 728 | mdecorde | ;Windows Vista UAC setting |
59 | 728 | mdecorde | |
60 | 728 | mdecorde | !if "${MULTIUSER_EXECUTIONLEVEL}" == Admin |
61 | 728 | mdecorde | RequestExecutionLevel admin |
62 | 728 | mdecorde | !define MULTIUSER_EXECUTIONLEVEL_ALLUSERS |
63 | 728 | mdecorde | !else if "${MULTIUSER_EXECUTIONLEVEL}" == Power |
64 | 728 | mdecorde | RequestExecutionLevel admin |
65 | 728 | mdecorde | !define MULTIUSER_EXECUTIONLEVEL_ALLUSERS |
66 | 728 | mdecorde | !else if "${MULTIUSER_EXECUTIONLEVEL}" == Highest |
67 | 728 | mdecorde | RequestExecutionLevel highest |
68 | 728 | mdecorde | !define MULTIUSER_EXECUTIONLEVEL_ALLUSERS |
69 | 728 | mdecorde | !else |
70 | 728 | mdecorde | RequestExecutionLevel user |
71 | 728 | mdecorde | !endif |
72 | 728 | mdecorde | |
73 | 728 | mdecorde | /* |
74 | 728 | mdecorde | |
75 | 728 | mdecorde | Install modes |
76 | 728 | mdecorde | |
77 | 728 | mdecorde | */ |
78 | 728 | mdecorde | |
79 | 728 | mdecorde | !macro MULTIUSER_INSTALLMODE_ALLUSERS UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX |
80 | 728 | mdecorde | |
81 | 728 | mdecorde | ;Install mode initialization - per-machine |
82 | 728 | mdecorde | |
83 | 728 | mdecorde | ${ifnot} ${IsNT} |
84 | 728 | mdecorde | ${orif} $MultiUser.Privileges == "Admin" |
85 | 728 | mdecorde | ${orif} $MultiUser.Privileges == "Power" |
86 | 728 | mdecorde | |
87 | 728 | mdecorde | StrCpy $MultiUser.InstallMode AllUsers |
88 | 728 | mdecorde | |
89 | 728 | mdecorde | SetShellVarContext all |
90 | 728 | mdecorde | |
91 | 728 | mdecorde | !if "${UNINSTALLER_PREFIX}" != UN |
92 | 728 | mdecorde | ;Set default installation location for installer |
93 | 728 | mdecorde | !ifdef MULTIUSER_INSTALLMODE_INSTDIR |
94 | 728 | mdecorde | StrCpy $INSTDIR "$PROGRAMFILES\${MULTIUSER_INSTALLMODE_INSTDIR}" |
95 | 728 | mdecorde | !endif |
96 | 728 | mdecorde | !endif |
97 | 728 | mdecorde | |
98 | 728 | mdecorde | !ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME |
99 | 728 | mdecorde | |
100 | 728 | mdecorde | ReadRegStr $MultiUser.InstDir HKLM "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}" |
101 | 728 | mdecorde | |
102 | 728 | mdecorde | ${if} $MultiUser.InstDir != "" |
103 | 728 | mdecorde | StrCpy $INSTDIR $MultiUser.InstDir |
104 | 728 | mdecorde | ${endif} |
105 | 728 | mdecorde | |
106 | 728 | mdecorde | !endif |
107 | 728 | mdecorde | |
108 | 728 | mdecorde | !ifdef MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION |
109 | 728 | mdecorde | Call "${MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION}" |
110 | 728 | mdecorde | !endif |
111 | 728 | mdecorde | |
112 | 728 | mdecorde | ${endif} |
113 | 728 | mdecorde | |
114 | 728 | mdecorde | !macroend |
115 | 728 | mdecorde | |
116 | 728 | mdecorde | !macro MULTIUSER_INSTALLMODE_CURRENTUSER UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX |
117 | 728 | mdecorde | |
118 | 728 | mdecorde | ;Install mode initialization - per-user |
119 | 728 | mdecorde | |
120 | 728 | mdecorde | ${if} ${IsNT} |
121 | 728 | mdecorde | |
122 | 728 | mdecorde | StrCpy $MultiUser.InstallMode CurrentUser |
123 | 728 | mdecorde | |
124 | 728 | mdecorde | SetShellVarContext current |
125 | 728 | mdecorde | |
126 | 728 | mdecorde | !if "${UNINSTALLER_PREFIX}" != UN |
127 | 728 | mdecorde | ;Set default installation location for installer |
128 | 728 | mdecorde | !ifdef MULTIUSER_INSTALLMODE_INSTDIR |
129 | 728 | mdecorde | ${if} ${AtLeastWin2000} |
130 | 728 | mdecorde | StrCpy $INSTDIR "$LOCALAPPDATA\${MULTIUSER_INSTALLMODE_INSTDIR}" |
131 | 728 | mdecorde | ${else} |
132 | 728 | mdecorde | StrCpy $INSTDIR "$PROGRAMFILES\${MULTIUSER_INSTALLMODE_INSTDIR}" |
133 | 728 | mdecorde | ${endif} |
134 | 728 | mdecorde | !endif |
135 | 728 | mdecorde | !endif |
136 | 728 | mdecorde | |
137 | 728 | mdecorde | !ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME |
138 | 728 | mdecorde | |
139 | 728 | mdecorde | ReadRegStr $MultiUser.InstDir HKCU "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}" |
140 | 728 | mdecorde | |
141 | 728 | mdecorde | ${if} $MultiUser.InstDir != "" |
142 | 728 | mdecorde | StrCpy $INSTDIR $MultiUser.InstDir |
143 | 728 | mdecorde | ${endif} |
144 | 728 | mdecorde | |
145 | 728 | mdecorde | !endif |
146 | 728 | mdecorde | |
147 | 728 | mdecorde | !ifdef MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION |
148 | 728 | mdecorde | Call "${MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION}" |
149 | 728 | mdecorde | !endif |
150 | 728 | mdecorde | |
151 | 728 | mdecorde | ${endif} |
152 | 728 | mdecorde | |
153 | 728 | mdecorde | !macroend |
154 | 728 | mdecorde | |
155 | 728 | mdecorde | Function MultiUser.InstallMode.AllUsers |
156 | 728 | mdecorde | !insertmacro MULTIUSER_INSTALLMODE_ALLUSERS "" "" |
157 | 728 | mdecorde | FunctionEnd |
158 | 728 | mdecorde | |
159 | 728 | mdecorde | Function MultiUser.InstallMode.CurrentUser |
160 | 728 | mdecorde | !insertmacro MULTIUSER_INSTALLMODE_CURRENTUSER "" "" |
161 | 728 | mdecorde | FunctionEnd |
162 | 728 | mdecorde | |
163 | 728 | mdecorde | !ifndef MULTIUSER_NOUNINSTALL |
164 | 728 | mdecorde | |
165 | 728 | mdecorde | Function un.MultiUser.InstallMode.AllUsers |
166 | 728 | mdecorde | !insertmacro MULTIUSER_INSTALLMODE_ALLUSERS UN .un |
167 | 728 | mdecorde | FunctionEnd |
168 | 728 | mdecorde | |
169 | 728 | mdecorde | Function un.MultiUser.InstallMode.CurrentUser |
170 | 728 | mdecorde | !insertmacro MULTIUSER_INSTALLMODE_CURRENTUSER UN .un |
171 | 728 | mdecorde | FunctionEnd |
172 | 728 | mdecorde | |
173 | 728 | mdecorde | !endif |
174 | 728 | mdecorde | |
175 | 728 | mdecorde | /* |
176 | 728 | mdecorde | |
177 | 728 | mdecorde | Installer/uninstaller initialization |
178 | 728 | mdecorde | |
179 | 728 | mdecorde | */ |
180 | 728 | mdecorde | |
181 | 728 | mdecorde | !macro MULTIUSER_INIT_QUIT UNINSTALLER_FUNCPREFIX |
182 | 728 | mdecorde | |
183 | 728 | mdecorde | !ifdef MULTIUSER_INIT_${UNINSTALLER_FUNCPREFIX}FUNCTIONQUIT |
184 | 728 | mdecorde | Call "${MULTIUSER_INIT_${UNINSTALLER_FUNCPREFIX}FUCTIONQUIT} |
185 | 728 | mdecorde | !else |
186 | 728 | mdecorde | Quit |
187 | 728 | mdecorde | !endif |
188 | 728 | mdecorde | |
189 | 728 | mdecorde | !macroend |
190 | 728 | mdecorde | |
191 | 728 | mdecorde | !macro MULTIUSER_INIT_TEXTS |
192 | 728 | mdecorde | |
193 | 728 | mdecorde | !ifndef MULTIUSER_INIT_TEXT_ADMINREQUIRED |
194 | 728 | mdecorde | !define MULTIUSER_INIT_TEXT_ADMINREQUIRED "$(^Caption) requires administrator priviledges." |
195 | 728 | mdecorde | !endif |
196 | 728 | mdecorde | |
197 | 728 | mdecorde | !ifndef MULTIUSER_INIT_TEXT_POWERREQUIRED |
198 | 728 | mdecorde | !define MULTIUSER_INIT_TEXT_POWERREQUIRED "$(^Caption) requires at least Power User priviledges." |
199 | 728 | mdecorde | !endif |
200 | 728 | mdecorde | |
201 | 728 | mdecorde | !ifndef MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE |
202 | 728 | mdecorde | !define MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE "Your user account does not have sufficient privileges to install $(^Name) for all users of this compuetr." |
203 | 728 | mdecorde | !endif |
204 | 728 | mdecorde | |
205 | 728 | mdecorde | !macroend |
206 | 728 | mdecorde | |
207 | 728 | mdecorde | !macro MULTIUSER_INIT_CHECKS UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX |
208 | 728 | mdecorde | |
209 | 728 | mdecorde | ;Installer initialization - check privileges and set install mode |
210 | 728 | mdecorde | |
211 | 728 | mdecorde | !insertmacro MULTIUSER_INIT_TEXTS |
212 | 728 | mdecorde | |
213 | 728 | mdecorde | UserInfo::GetAccountType |
214 | 728 | mdecorde | Pop $MultiUser.Privileges |
215 | 728 | mdecorde | |
216 | 728 | mdecorde | ${if} ${IsNT} |
217 | 728 | mdecorde | |
218 | 728 | mdecorde | ;Check privileges |
219 | 728 | mdecorde | |
220 | 728 | mdecorde | !if "${MULTIUSER_EXECUTIONLEVEL}" == Admin |
221 | 728 | mdecorde | |
222 | 728 | mdecorde | ${if} $MultiUser.Privileges != "Admin" |
223 | 728 | mdecorde | MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ADMINREQUIRED}" |
224 | 728 | mdecorde | !insertmacro MULTIUSER_INIT_QUIT "${UNINSTALLER_FUNCPREFIX}" |
225 | 728 | mdecorde | ${endif} |
226 | 728 | mdecorde | |
227 | 728 | mdecorde | !else if "${MULTIUSER_EXECUTIONLEVEL}" == Power |
228 | 728 | mdecorde | |
229 | 728 | mdecorde | ${if} $MultiUser.Privileges != "Power" |
230 | 728 | mdecorde | ${andif} $MultiUser.Privileges != "Admin" |
231 | 728 | mdecorde | ${if} ${AtMostWinXP} |
232 | 728 | mdecorde | MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_POWERREQUIRED}" |
233 | 728 | mdecorde | ${else} |
234 | 728 | mdecorde | MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ADMINREQUIRED}" |
235 | 728 | mdecorde | ${endif} |
236 | 728 | mdecorde | !insertmacro MULTIUSER_INIT_QUIT "${UNINSTALLER_FUNCPREFIX}" |
237 | 728 | mdecorde | ${endif} |
238 | 728 | mdecorde | |
239 | 728 | mdecorde | !endif |
240 | 728 | mdecorde | |
241 | 728 | mdecorde | !ifdef MULTIUSER_EXECUTIONLEVEL_ALLUSERS |
242 | 728 | mdecorde | |
243 | 728 | mdecorde | ;Default to per-machine installation if possible |
244 | 728 | mdecorde | |
245 | 728 | mdecorde | ${if} $MultiUser.Privileges == "Admin" |
246 | 728 | mdecorde | ${orif} $MultiUser.Privileges == "Power" |
247 | 728 | mdecorde | !ifndef MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER |
248 | 728 | mdecorde | Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers |
249 | 728 | mdecorde | !else |
250 | 728 | mdecorde | Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser |
251 | 728 | mdecorde | !endif |
252 | 728 | mdecorde | |
253 | 728 | mdecorde | !ifdef MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY & MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME |
254 | 728 | mdecorde | |
255 | 728 | mdecorde | ;Set installation mode to setting from a previous installation |
256 | 728 | mdecorde | |
257 | 728 | mdecorde | !ifndef MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER |
258 | 728 | mdecorde | ReadRegStr $MultiUser.DefaultKeyValue HKLM "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}" |
259 | 728 | mdecorde | ${if} $MultiUser.DefaultKeyValue == "" |
260 | 728 | mdecorde | ReadRegStr $MultiUser.DefaultKeyValue HKCU "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}" |
261 | 728 | mdecorde | ${if} $MultiUser.DefaultKeyValue != "" |
262 | 728 | mdecorde | Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser |
263 | 728 | mdecorde | ${endif} |
264 | 728 | mdecorde | ${endif} |
265 | 728 | mdecorde | !else |
266 | 728 | mdecorde | ReadRegStr $MultiUser.DefaultKeyValue HKCU "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}" |
267 | 728 | mdecorde | ${if} $MultiUser.DefaultKeyValue == "" |
268 | 728 | mdecorde | ReadRegStr $MultiUser.DefaultKeyValue HKLM "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}" |
269 | 728 | mdecorde | ${if} $MultiUser.DefaultKeyValue != "" |
270 | 728 | mdecorde | Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers |
271 | 728 | mdecorde | ${endif} |
272 | 728 | mdecorde | ${endif} |
273 | 728 | mdecorde | !endif |
274 | 728 | mdecorde | |
275 | 728 | mdecorde | !endif |
276 | 728 | mdecorde | |
277 | 728 | mdecorde | ${else} |
278 | 728 | mdecorde | Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser |
279 | 728 | mdecorde | ${endif} |
280 | 728 | mdecorde | |
281 | 728 | mdecorde | !else |
282 | 728 | mdecorde | |
283 | 728 | mdecorde | Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser |
284 | 728 | mdecorde | |
285 | 728 | mdecorde | !endif |
286 | 728 | mdecorde | |
287 | 728 | mdecorde | !ifdef MULTIUSER_INSTALLMODE_COMMANDLINE |
288 | 728 | mdecorde | |
289 | 728 | mdecorde | ;Check for install mode setting on command line |
290 | 728 | mdecorde | |
291 | 728 | mdecorde | ${${UNINSTALLER_FUNCPREFIX}GetParameters} $MultiUser.Parameters |
292 | 728 | mdecorde | |
293 | 728 | mdecorde | ${${UNINSTALLER_PREFIX}StrStr} $MultiUser.Result $MultiUser.Parameters "/CurrentUser" |
294 | 728 | mdecorde | |
295 | 728 | mdecorde | ${if} $MultiUser.Result != "" |
296 | 728 | mdecorde | Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser |
297 | 728 | mdecorde | ${endif} |
298 | 728 | mdecorde | |
299 | 728 | mdecorde | ${${UNINSTALLER_PREFIX}StrStr} $MultiUser.Result $MultiUser.Parameters "/AllUsers" |
300 | 728 | mdecorde | |
301 | 728 | mdecorde | ${if} $MultiUser.Result != "" |
302 | 728 | mdecorde | ${if} $MultiUser.Privileges == "Admin" |
303 | 728 | mdecorde | ${orif} $MultiUser.Privileges == "Power" |
304 | 728 | mdecorde | Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers |
305 | 728 | mdecorde | ${else} |
306 | 728 | mdecorde | MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE}" |
307 | 728 | mdecorde | ${endif} |
308 | 728 | mdecorde | ${endif} |
309 | 728 | mdecorde | |
310 | 728 | mdecorde | !endif |
311 | 728 | mdecorde | |
312 | 728 | mdecorde | ${else} |
313 | 728 | mdecorde | |
314 | 728 | mdecorde | ;Not running Windows NT, per-user installation not supported |
315 | 728 | mdecorde | |
316 | 728 | mdecorde | Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers |
317 | 728 | mdecorde | |
318 | 728 | mdecorde | ${endif} |
319 | 728 | mdecorde | |
320 | 728 | mdecorde | !macroend |
321 | 728 | mdecorde | |
322 | 728 | mdecorde | !macro MULTIUSER_INIT |
323 | 728 | mdecorde | !verbose push |
324 | 728 | mdecorde | !verbose 3 |
325 | 728 | mdecorde | |
326 | 728 | mdecorde | !insertmacro MULTIUSER_INIT_CHECKS "" "" |
327 | 728 | mdecorde | |
328 | 728 | mdecorde | !verbose pop |
329 | 728 | mdecorde | !macroend |
330 | 728 | mdecorde | |
331 | 728 | mdecorde | !ifndef MULTIUSER_NOUNINSTALL |
332 | 728 | mdecorde | |
333 | 728 | mdecorde | !macro MULTIUSER_UNINIT |
334 | 728 | mdecorde | !verbose push |
335 | 728 | mdecorde | !verbose 3 |
336 | 728 | mdecorde | |
337 | 728 | mdecorde | !insertmacro MULTIUSER_INIT_CHECKS Un un. |
338 | 728 | mdecorde | |
339 | 728 | mdecorde | !verbose pop |
340 | 728 | mdecorde | !macroend |
341 | 728 | mdecorde | |
342 | 728 | mdecorde | !endif |
343 | 728 | mdecorde | |
344 | 728 | mdecorde | /* |
345 | 728 | mdecorde | |
346 | 728 | mdecorde | Modern UI 2 page |
347 | 728 | mdecorde | |
348 | 728 | mdecorde | */ |
349 | 728 | mdecorde | |
350 | 728 | mdecorde | !ifdef MULTIUSER_MUI |
351 | 728 | mdecorde | |
352 | 728 | mdecorde | !macro MULTIUSER_INSTALLMODEPAGE_INTERFACE |
353 | 728 | mdecorde | |
354 | 728 | mdecorde | !ifndef MULTIUSER_INSTALLMODEPAGE_INTERFACE |
355 | 728 | mdecorde | !define MULTIUSER_INSTALLMODEPAGE_INTERFACE |
356 | 728 | mdecorde | Var MultiUser.InstallModePage |
357 | 728 | mdecorde | |
358 | 728 | mdecorde | Var MultiUser.InstallModePage.Text |
359 | 728 | mdecorde | |
360 | 728 | mdecorde | Var MultiUser.InstallModePage.AllUsers |
361 | 728 | mdecorde | Var MultiUser.InstallModePage.CurrentUser |
362 | 728 | mdecorde | |
363 | 728 | mdecorde | Var MultiUser.InstallModePage.ReturnValue |
364 | 728 | mdecorde | !endif |
365 | 728 | mdecorde | |
366 | 728 | mdecorde | !macroend |
367 | 728 | mdecorde | |
368 | 728 | mdecorde | !macro MULTIUSER_PAGEDECLARATION_INSTALLMODE |
369 | 728 | mdecorde | |
370 | 728 | mdecorde | !insertmacro MUI_SET MULTIUSER_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLMODEPAGE "" |
371 | 728 | mdecorde | !insertmacro MULTIUSER_INSTALLMODEPAGE_INTERFACE |
372 | 728 | mdecorde | |
373 | 728 | mdecorde | !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_TOP "$(MULTIUSER_INNERTEXT_INSTALLMODE_TOP)" |
374 | 728 | mdecorde | !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS "$(MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS)" |
375 | 728 | mdecorde | !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER "$(MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER)" |
376 | 728 | mdecorde | |
377 | 728 | mdecorde | PageEx custom |
378 | 728 | mdecorde | |
379 | 728 | mdecorde | PageCallbacks MultiUser.InstallModePre_${MUI_UNIQUEID} MultiUser.InstallModeLeave_${MUI_UNIQUEID} |
380 | 728 | mdecorde | |
381 | 728 | mdecorde | Caption " " |
382 | 728 | mdecorde | |
383 | 728 | mdecorde | PageExEnd |
384 | 728 | mdecorde | |
385 | 728 | mdecorde | !insertmacro MULTIUSER_FUNCTION_INSTALLMODEPAGE MultiUser.InstallModePre_${MUI_UNIQUEID} MultiUser.InstallModeLeave_${MUI_UNIQUEID} |
386 | 728 | mdecorde | |
387 | 728 | mdecorde | !undef MULTIUSER_INSTALLMODEPAGE_TEXT_TOP |
388 | 728 | mdecorde | !undef MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS |
389 | 728 | mdecorde | !undef MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER |
390 | 728 | mdecorde | |
391 | 728 | mdecorde | !macroend |
392 | 728 | mdecorde | |
393 | 728 | mdecorde | !macro MULTIUSER_PAGE_INSTALLMODE |
394 | 728 | mdecorde | |
395 | 728 | mdecorde | ;Modern UI page for install mode |
396 | 728 | mdecorde | |
397 | 728 | mdecorde | !verbose push |
398 | 728 | mdecorde | !verbose 3 |
399 | 728 | mdecorde | |
400 | 728 | mdecorde | !ifndef MULTIUSER_EXECUTIONLEVEL_ALLUSERS |
401 | 728 | mdecorde | !error "A mixed-mode installation requires MULTIUSER_EXECUTIONLEVEL to be set to Admin, Power or Highest." |
402 | 728 | mdecorde | !endif |
403 | 728 | mdecorde | |
404 | 728 | mdecorde | !insertmacro MUI_PAGE_INIT |
405 | 728 | mdecorde | !insertmacro MULTIUSER_PAGEDECLARATION_INSTALLMODE |
406 | 728 | mdecorde | |
407 | 728 | mdecorde | !verbose pop |
408 | 728 | mdecorde | |
409 | 728 | mdecorde | !macroend |
410 | 728 | mdecorde | |
411 | 728 | mdecorde | !macro MULTIUSER_FUNCTION_INSTALLMODEPAGE PRE LEAVE |
412 | 728 | mdecorde | |
413 | 728 | mdecorde | ;Page functions of Modern UI page |
414 | 728 | mdecorde | |
415 | 728 | mdecorde | Function "${PRE}" |
416 | 728 | mdecorde | |
417 | 728 | mdecorde | ${ifnot} ${IsNT} |
418 | 728 | mdecorde | Abort |
419 | 728 | mdecorde | ${endif} |
420 | 728 | mdecorde | |
421 | 728 | mdecorde | ${if} $MultiUser.Privileges != "Power" |
422 | 728 | mdecorde | ${andif} $MultiUser.Privileges != "Admin" |
423 | 728 | mdecorde | Abort |
424 | 728 | mdecorde | ${endif} |
425 | 728 | mdecorde | |
426 | 728 | mdecorde | !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE |
427 | 728 | mdecorde | !insertmacro MUI_HEADER_TEXT_PAGE $(MULTIUSER_TEXT_INSTALLMODE_TITLE) $(MULTIUSER_TEXT_INSTALLMODE_SUBTITLE) |
428 | 728 | mdecorde | |
429 | 728 | mdecorde | nsDialogs::Create 1018 |
430 | 728 | mdecorde | Pop $MultiUser.InstallModePage |
431 | 728 | mdecorde | |
432 | 728 | mdecorde | ${NSD_CreateLabel} 0u 0u 300u 20u "${MULTIUSER_INSTALLMODEPAGE_TEXT_TOP}" |
433 | 728 | mdecorde | Pop $MultiUser.InstallModePage.Text |
434 | 728 | mdecorde | |
435 | 728 | mdecorde | ${NSD_CreateRadioButton} 20u 50u 280u 10u "${MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS}" |
436 | 728 | mdecorde | Pop $MultiUser.InstallModePage.AllUsers |
437 | 728 | mdecorde | |
438 | 728 | mdecorde | ${NSD_CreateRadioButton} 20u 70u 280u 10u "${MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER}" |
439 | 728 | mdecorde | Pop $MultiUser.InstallModePage.CurrentUser |
440 | 728 | mdecorde | |
441 | 728 | mdecorde | ${if} $MultiUser.InstallMode == "AllUsers" |
442 | 728 | mdecorde | SendMessage $MultiUser.InstallModePage.AllUsers ${BM_SETCHECK} ${BST_CHECKED} 0 |
443 | 728 | mdecorde | ${else} |
444 | 728 | mdecorde | SendMessage $MultiUser.InstallModePage.CurrentUser ${BM_SETCHECK} ${BST_CHECKED} 0 |
445 | 728 | mdecorde | ${endif} |
446 | 728 | mdecorde | |
447 | 728 | mdecorde | !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW |
448 | 728 | mdecorde | nsDialogs::Show |
449 | 728 | mdecorde | |
450 | 728 | mdecorde | FunctionEnd |
451 | 728 | mdecorde | |
452 | 728 | mdecorde | Function "${LEAVE}" |
453 | 728 | mdecorde | SendMessage $MultiUser.InstallModePage.AllUsers ${BM_GETCHECK} 0 0 $MultiUser.InstallModePage.ReturnValue |
454 | 728 | mdecorde | |
455 | 728 | mdecorde | ${if} $MultiUser.InstallModePage.ReturnValue = ${BST_CHECKED} |
456 | 728 | mdecorde | Call MultiUser.InstallMode.AllUsers |
457 | 728 | mdecorde | ${else} |
458 | 728 | mdecorde | Call MultiUser.InstallMode.CurrentUser |
459 | 728 | mdecorde | ${endif} |
460 | 728 | mdecorde | |
461 | 728 | mdecorde | !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE |
462 | 728 | mdecorde | FunctionEnd |
463 | 728 | mdecorde | |
464 | 728 | mdecorde | !macroend |
465 | 728 | mdecorde | |
466 | 728 | mdecorde | !endif |
467 | 728 | mdecorde | |
468 | 728 | mdecorde | !verbose pop |
469 | 728 | mdecorde | !endif |