/[cvs]/joko/ToolBox/Windows/VpnDial-installer/vpn.nsi
ViewVC logotype

Annotation of /joko/ToolBox/Windows/VpnDial-installer/vpn.nsi

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (hide annotations)
Tue Nov 22 15:50:55 2005 UTC (18 years, 7 months ago) by janosch
Branch: MAIN
Changes since 1.5: +5 -1 lines
concatenate IP strings

1 janosch 1.4 ; VpnDial.nsi
2 janosch 1.6 ; $Id: vpn.nsi,v 1.5 2005/11/22 14:39:08 janosch Exp $
3 janosch 1.4 ;
4     ; This script can install VpnDial,
5     ; has uninstall support and (optionally) installs start menu shortcuts.
6     ;
7    
8     !include "MUI.nsh"
9 janosch 1.5 !include "variables-decleration.nsi"
10 janosch 1.4 !include "file_functions.nsi"
11    
12    
13     ; --------------------------------
14     ; The name of the installer
15     ; --------------------------------
16     Name "VpnDial"
17    
18     ; The file to write
19     OutFile "VpnDial-Setup.exe"
20    
21     ; The default installation directory
22     InstallDir $PROGRAMFILES\NetFragOrg\VpnDial
23    
24     ; Registry key to check for directory (so if you install again, it will
25     ; overwrite the old one automatically)
26     InstallDirRegKey HKLM "Software\NSIS_VpnDial" "Install_Dir"
27    
28     SetOverwrite on
29    
30    
31     ; --------------------------------
32     ; (MUI) Interface Settings
33     ; --------------------------------
34     !define MUI_ABORTWARNING
35     !define MUI_COMPONENTSPAGE_NODESC
36     !define MUI_ICON "key.ico"
37     !define MUI_UNICON "key.ico"
38    
39    
40     ; --------------------------------
41     ; Pages
42     ; --------------------------------
43    
44     UninstPage uninstConfirm
45     UninstPage instfiles
46    
47     !insertmacro MUI_PAGE_WELCOME
48     Page custom SetupPage1
49     Page custom SetupPage2
50     Page custom SetupPage3
51     !insertmacro MUI_PAGE_COMPONENTS
52     !insertmacro MUI_PAGE_DIRECTORY
53     !insertmacro MUI_PAGE_INSTFILES
54    
55     !insertmacro MUI_UNPAGE_CONFIRM
56     !insertmacro MUI_UNPAGE_INSTFILES
57     !insertmacro MUI_LANGUAGE "German"
58    
59    
60     ; --------------------------------
61     ; .onInit
62     ; --------------------------------
63    
64     Function .onInit
65    
66     System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
67     Pop $R0
68     StrCmp $R0 0 +3
69     MessageBox MB_OK|MB_ICONEXCLAMATION "Die Installation läuft bereits."
70     Abort
71    
72     !insertmacro MUI_INSTALLOPTIONS_EXTRACT "vpndial_settings.ini"
73     !insertmacro MUI_INSTALLOPTIONS_EXTRACT "vpndial_settings_net.ini"
74     !insertmacro MUI_INSTALLOPTIONS_EXTRACT "vpndial_settings_cert.ini"
75     FunctionEnd
76    
77     Function SetupPage1
78     ; custom page
79     ; see: http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html#customPages
80     ; and: http://nsis.sourceforge.net/Docs/InstallOptions/Readme.html
81     !insertmacro MUI_HEADER_TEXT "VpnDial Einstellungen" "Bitte füllen Sie folgende Angaben aus"
82     !insertmacro MUI_INSTALLOPTIONS_DISPLAY "vpndial_settings.ini"
83     FunctionEnd
84    
85     Function SetupPage2
86     !insertmacro MUI_HEADER_TEXT "VpnDial Einstellungen" "Bitte füllen Sie folgende Angaben aus"
87     !insertmacro MUI_INSTALLOPTIONS_DISPLAY "vpndial_settings_net.ini"
88     FunctionEnd
89    
90     Function SetupPage3
91     !insertmacro MUI_HEADER_TEXT "VpnDial Einstellungen" "Bitte füllen Sie folgende Angaben aus"
92     !insertmacro MUI_INSTALLOPTIONS_DISPLAY "vpndial_settings_cert.ini"
93     FunctionEnd
94    
95    
96     ; --------------------------------
97     ; The stuff to install
98     ; --------------------------------
99    
100     Section
101    
102     ;Get Parameter from vpndial_settings.ini
103    
104     ;Get Connectionname
105     !insertmacro MUI_INSTALLOPTIONS_READ $connectionname "vpndial_settings.ini" "Field 2" "State"
106     ;MessageBox MB_OK $R1
107     ;StrCpy $connectionname $R1
108    
109     ;Get Destination_host
110     !insertmacro MUI_INSTALLOPTIONS_READ $destination_host "vpndial_settings.ini" "Field 3" "State"
111     ;MessageBox MB_OK $R2
112     ;StrCpy $destination_host $R2
113    
114     ;Get Username
115     !insertmacro MUI_INSTALLOPTIONS_READ $username "vpndial_settings.ini" "Field 4" "State"
116    
117     ;Get Password
118     !insertmacro MUI_INSTALLOPTIONS_READ $userpass "vpndial_settings.ini" "Field 8" "State"
119    
120     ;-------------------------------------------------------------------------------------------------------------
121    
122     ;Get Parameter from vpndial_settings_net.ini
123    
124     ;Get Destination_net
125     !insertmacro MUI_INSTALLOPTIONS_READ $R1 "vpndial_settings_net.ini" "Field 2" "State"
126     !insertmacro MUI_INSTALLOPTIONS_READ $R2 "vpndial_settings_net.ini" "Field 3" "State"
127     !insertmacro MUI_INSTALLOPTIONS_READ $R3 "vpndial_settings_net.ini" "Field 4" "State"
128     !insertmacro MUI_INSTALLOPTIONS_READ $R4 "vpndial_settings_net.ini" "Field 7" "State"
129    
130 janosch 1.6 StrCpy $destination_net "$R1.$R2.$R3.$R4"
131    
132 janosch 1.4 ;Get Destination_mask
133     !insertmacro MUI_INSTALLOPTIONS_READ $R5 "vpndial_settings_net.ini" "Field 12" "State"
134     !insertmacro MUI_INSTALLOPTIONS_READ $R6 "vpndial_settings_net.ini" "Field 13" "State"
135     !insertmacro MUI_INSTALLOPTIONS_READ $R7 "vpndial_settings_net.ini" "Field 14" "State"
136     !insertmacro MUI_INSTALLOPTIONS_READ $R8 "vpndial_settings_net.ini" "Field 15" "State"
137    
138 janosch 1.6 StrCpy $destination_mask "$R12.$R13.$R14.$R15"
139    
140 janosch 1.4 ;--------------------------------------------------------------------------------------------------------------
141    
142     ;Get Parameter from vpndial_settings_cert.ini
143    
144     !insertmacro MUI_INSTALLOPTIONS_READ $cacert "vpndial_settings_cert.ini" "Field 2" "State"
145     !insertmacro MUI_INSTALLOPTIONS_READ $usercert "vpndial_settings_cert.ini" "Field 3" "State"
146    
147     SectionEnd
148    
149     Section
150     SetShellVarContext all
151     Push $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk
152     Push "[$connectionname]"
153     Call FileSearch
154     Pop $0 #Number of times found throughout
155     Pop $1 #Found at all? yes/no
156     Pop $2 #Number of lines found in
157     StrCmp $1 yes 0 +3
158     MessageBox MB_OK "Die Verbindung $\"$connectionname$\" existiert bereits. Der Eintrag kann leider nicht doppelt angelegt werden."
159     Abort
160     SectionEnd
161    
162     Section "VpnDial" IDX_VpnDial
163    
164     SetOverwrite on
165    
166     SetDetailsPrint both
167     DetailPrint "Installiere VpnDial..."
168    
169     ;SectionIn RO
170    
171     ; Set output path to the installation directory.
172     SetOutPath $INSTDIR
173    
174     ;CreateDirectory $INSTDIR\certs\
175    
176     ; Put file there
177     File /r "vpndial\*.*"
178    
179     ; Write the installation path into the registry
180     WriteRegStr HKLM Software\NSIS_VpnDial "Install_Dir" "$INSTDIR"
181    
182     ; Write the uninstall keys for Windows
183     WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "DisplayName" "VpnDial"
184     WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "UninstallString" '"$INSTDIR\uninstall.exe"'
185     WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "NoModify" 1
186     WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial" "NoRepair" 1
187     WriteUninstaller "uninstall.exe"
188    
189     SectionEnd
190    
191     Section
192     DetailPrint "Installiere VPN-Verbindung..."
193     Push "[##connectionname##]" #-- text to be replaced within the " "
194     Push "[$connectionname]" #-- replace with anything within the " "
195     Push all #-- replace all occurrences
196     Push all #-- replace all occurrences
197     Push "$INSTDIR\pbk\connection.pbk" #-- file to replace in
198     Call AdvReplaceInFile #-- Call the Function
199     SectionEnd
200    
201     Section
202     Push "PhoneNumber=##destinationhost##" #-- text to be replaced within the " "
203     Push "PhoneNumber=$destination_host" #-- replace with anything within the " "
204     Push all #-- replace all occurrences
205     Push all #-- replace all occurrences
206     Push "$INSTDIR\pbk\connection.pbk" #-- file to replace in
207     Call AdvReplaceInFile #-- Call the Function
208     SectionEnd
209    
210     Section
211     SetShellVarContext all
212     Push $INSTDIR\pbk\rasphone.pbk
213     Push $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk
214     Push $INSTDIR\pbk\connection.pbk
215     Call JoinFiles
216     CopyFiles $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk $INSTDIR\pbk\rasphone_orig.pbk
217     CopyFiles $INSTDIR\pbk\rasphone.pbk $APPDATA\Microsoft\Network\Connections\Pbk\rasphone.pbk
218     SetShellVarContext current
219     SectionEnd
220    
221     Section
222     nsExec::Exec "$INSTDIR\bin\VpnDial.exe --setup $connectionname --user $username --pass $userpass"
223     SectionEnd
224    
225     Section
226     ;nsExec::Exec "$INSTDIR\bin\certmgr.exe -add -c $INSTDIR\certs\$cacert -s -r localMachine root"
227     ;nsExec::Exec "$INSTDIR\bin\certmgr.exe -add -c $cacert -s -r localMachine root"
228     SectionEnd
229    
230     Section
231     ;nsExec::Exec "$INSTDIR\bin\winhttpcertcfg.exe -g -i $INSTDIR\certs\$usercert -c LOCAL_MACHINE\My -a $currentuser"
232     nsExec::Exec "$INSTDIR\bin\winhttpcertcfg.exe -g -i $usercert -c LOCAL_MACHINE\My -a $currentuser"
233     SectionEnd
234    
235     ; Optional section (can be disabled by the user)
236     Section "Startmenü-Einträge" IDX_STARTMENU
237    
238     SetDetailsPrint both
239     DetailPrint "Installiere Startmenü-Einträge und Desktop-Verknüpfungen..."
240    
241     CreateDirectory "$SMPROGRAMS\VpnDial"
242     CreateShortCut "$SMPROGRAMS\VpnDial\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
243     CreateShortCut "$SMPROGRAMS\VpnDial\VpnMonitor.lnk" "$INSTDIR\bin\VpnDial.exe" "--gui --up --monitor $connectionname --net $destination_net" "$INSTDIR\bin\VpnDial.exe" 0
244     CreateShortCut "$SMPROGRAMS\VpnDial\VpnDial.lnk" "$INSTDIR\bin\VpnDial.exe" "--dial $connectionname --net $destination_net" "$INSTDIR\bin\VpnDial.exe" 0
245     ;CreateShortCut "$SMPROGRAMS\VpnDial\VpnSetup.lnk" "$INSTDIR\bin\VpnDial.exe" "--setup $connectionname --user $username --pass $userpass" "$INSTDIR\bin\VpnDial.exe" 0
246     CreateShortCut "$SMPROGRAMS\VpnDial\Zertifikate.lnk" "$INSTDIR\certs\" "" "$INSTDIR\certs\" 0
247     CreateShortCut "$SMPROGRAMS\VpnDial\ZertifikatsVerwaltung.lnk" "$INSTDIR\links\IPSec.msc" "" "$INSTDIR\links\IPSec.msc" 0
248     ;CreateShortCut "$SMPROGRAMS\VpnDial\README.lnk" "$INSTDIR\doc\README.txt" "" "$INSTDIR\doc\README.txt" 0
249     ;CreateShortCut "$SMPROGRAMS\VpnDial\README-HTML.lnk" "$INSTDIR\doc\README.htm" "" "$INSTDIR\doc\README.htm" 0
250    
251     CopyFiles "$INSTDIR\links\Netzwerkverbindung*" "$SMPROGRAMS\VpnDial\"
252    
253     SectionEnd
254    
255    
256     ; --------------------------------
257     ; Uninstaller
258     ; --------------------------------
259    
260     Section "Uninstall" IDX_UNINSTALL
261    
262     ; ------------------
263     ; uninstall VpnDial
264     ; ------------------
265    
266     ; Remove registry keys
267     DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VpnDial"
268     DeleteRegKey HKLM SOFTWARE\NSIS_VpnDial
269    
270     ;Remove files and uninstaller
271     ;Delete $INSTDIR\makensisw.exe
272     ;Delete $INSTDIR\uninstall.exe
273     ;Delete "$INSTDIR\*.*"
274    
275     ; Remove shortcuts, if any
276     Delete "$SMPROGRAMS\VpnDial\*.*"
277    
278     ; Remove directories used
279     RMDir /r "$SMPROGRAMS\VpnDial"
280     RMDir /r "$INSTDIR"
281    
282     SectionEnd

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed