Statistiques
| Révision :

root / tmp / org.txm.setups / nsis / Examples / install-shared.nsi @ 3128

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