root / tmp / org.txm.setups / nsis / Examples / install-shared.nsi @ 2961
Historique | Voir | Annoter | Télécharger (2,4 ko)
1 | 2956 | mdecorde | /* |
---|---|---|---|
2 | 2956 | mdecorde | |
3 | 2956 | mdecorde | This example script installs a simple application for all users on a machine. |
4 | 2956 | mdecorde | |
5 | 2956 | mdecorde | All-users installers should only write to HKLM, $ProgramFiles, $CommonFiles and the |
6 | 2956 | mdecorde | "All context" versions of $LocalAppData, $Templates, $SMPrograms etc. |
7 | 2956 | mdecorde | |
8 | 2956 | mdecorde | It should not write to HKCU nor any folders in the users profile! |
9 | 2956 | mdecorde | If the application requires writable template data in $AppData it |
10 | 2956 | mdecorde | must copy the required files from a shared location the |
11 | 2956 | mdecorde | first time a user launches the application. |
12 | 2956 | mdecorde | |
13 | 2956 | mdecorde | */ |
14 | 2956 | mdecorde | |
15 | 2956 | mdecorde | !define NAME "All-users example" |
16 | 2956 | mdecorde | !define REGPATH_UNINSTSUBKEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" |
17 | 2956 | mdecorde | Name "${NAME}" |
18 | 2956 | mdecorde | OutFile "Install ${NAME}.exe" |
19 | 2956 | mdecorde | Unicode True |
20 | 2956 | mdecorde | RequestExecutionLevel Admin ; Request admin rights on WinVista+ (when UAC is turned on) |
21 | 2956 | mdecorde | InstallDir "$ProgramFiles\$(^Name)" |
22 | 2956 | mdecorde | InstallDirRegKey HKLM "${REGPATH_UNINSTSUBKEY}" "UninstallString" |
23 | 2956 | mdecorde | |
24 | 2956 | mdecorde | !include LogicLib.nsh |
25 | 2956 | mdecorde | !include Integration.nsh |
26 | 2956 | mdecorde | |
27 | 2956 | mdecorde | Page Directory |
28 | 2956 | mdecorde | Page InstFiles |
29 | 2956 | mdecorde | |
30 | 2956 | mdecorde | Uninstpage UninstConfirm |
31 | 2956 | mdecorde | Uninstpage InstFiles |
32 | 2956 | mdecorde | |
33 | 2956 | mdecorde | !macro EnsureAdminRights |
34 | 2956 | mdecorde | UserInfo::GetAccountType |
35 | 2956 | mdecorde | Pop $0 |
36 | 2956 | mdecorde | ${If} $0 != "admin" ; Require admin rights on WinNT4+ |
37 | 2956 | mdecorde | MessageBox MB_IconStop "Administrator rights required!" |
38 | 2956 | mdecorde | SetErrorLevel 740 ; ERROR_ELEVATION_REQUIRED |
39 | 2956 | mdecorde | Quit |
40 | 2956 | mdecorde | ${EndIf} |
41 | 2956 | mdecorde | !macroend |
42 | 2956 | mdecorde | |
43 | 2956 | mdecorde | Function .onInit |
44 | 2956 | mdecorde | SetShellVarContext All |
45 | 2956 | mdecorde | !insertmacro EnsureAdminRights |
46 | 2956 | mdecorde | FunctionEnd |
47 | 2956 | mdecorde | |
48 | 2956 | mdecorde | Function un.onInit |
49 | 2956 | mdecorde | SetShellVarContext All |
50 | 2956 | mdecorde | !insertmacro EnsureAdminRights |
51 | 2956 | mdecorde | FunctionEnd |
52 | 2956 | mdecorde | |
53 | 2956 | mdecorde | |
54 | 2956 | mdecorde | Section "Program files (Required)" |
55 | 2956 | mdecorde | SectionIn Ro |
56 | 2956 | mdecorde | |
57 | 2956 | mdecorde | SetOutPath $InstDir |
58 | 2956 | mdecorde | WriteUninstaller "$InstDir\Uninst.exe" |
59 | 2956 | mdecorde | WriteRegStr HKLM "${REGPATH_UNINSTSUBKEY}" "DisplayName" "${NAME}" |
60 | 2956 | mdecorde | WriteRegStr HKLM "${REGPATH_UNINSTSUBKEY}" "DisplayIcon" "$InstDir\MyApp.exe,0" |
61 | 2956 | mdecorde | WriteRegStr HKLM "${REGPATH_UNINSTSUBKEY}" "UninstallString" '"$InstDir\Uninst.exe"' |
62 | 2956 | mdecorde | WriteRegDWORD HKLM "${REGPATH_UNINSTSUBKEY}" "NoModify" 1 |
63 | 2956 | mdecorde | WriteRegDWORD HKLM "${REGPATH_UNINSTSUBKEY}" "NoRepair" 1 |
64 | 2956 | mdecorde | |
65 | 2956 | mdecorde | File "/oname=$InstDir\MyApp.exe" "${NSISDIR}\Bin\MakeLangId.exe" ; Pretend that we have a real application to install |
66 | 2956 | mdecorde | SectionEnd |
67 | 2956 | mdecorde | |
68 | 2956 | mdecorde | Section "Start Menu shortcut" |
69 | 2956 | mdecorde | CreateShortcut /NoWorkingDir "$SMPrograms\${NAME}.lnk" "$InstDir\MyApp.exe" |
70 | 2956 | mdecorde | SectionEnd |
71 | 2956 | mdecorde | |
72 | 2956 | mdecorde | |
73 | 2956 | mdecorde | Section -Uninstall |
74 | 2956 | mdecorde | ${UnpinShortcut} "$SMPrograms\${NAME}.lnk" |
75 | 2956 | mdecorde | Delete "$SMPrograms\${NAME}.lnk" |
76 | 2956 | mdecorde | |
77 | 2956 | mdecorde | Delete "$InstDir\MyApp.exe" |
78 | 2956 | mdecorde | Delete "$InstDir\Uninst.exe" |
79 | 2956 | mdecorde | RMDir "$InstDir" |
80 | 2956 | mdecorde | DeleteRegKey HKLM "${REGPATH_UNINSTSUBKEY}" |
81 | 2956 | mdecorde | SectionEnd |