1 | #cs |
---|
2 | |
---|
3 | Norton Commander 95/NT Install + Deinstall |
---|
4 | ------------------------------------------ |
---|
5 | |
---|
6 | #ce |
---|
7 | |
---|
8 | #include <Constants.au3> |
---|
9 | #include <File.au3> |
---|
10 | |
---|
11 | $sCmdLine = "C:\Drivers\Norton5\Setup32\SETUP.EXE" ; V.4.20.6 01.10.96 42.572 Byte |
---|
12 | $sWorkDir = "C:\Drivers\Norton5\Setup32" |
---|
13 | $sPath = "D:\Patch\NC5" ; @ProgramFilesDir & "\Norton Commander" --- MUSS Wert enthalten! |
---|
14 | $sEditor = "D:\Programme\UltraEdit\Uedit32.exe" ;externer Editor |
---|
15 | $sName = "dutCh" |
---|
16 | $sOrg = "ACM Inc." |
---|
17 | |
---|
18 | $iCmdDelay = 500 ;Sleep() in Loop --- z.B. Ablaufverfolgung |
---|
19 | $iCntDlg = 2 ;Install-Dialogs --- Dialoge maximal 4000 Zeichen! |
---|
20 | $iCntDel = 1 ;Deinstall-Dialogs |
---|
21 | |
---|
22 | Dim $aDlg[100][8], $aDel[100][8] ;100 Lines x 8 Commands pro Dialog |
---|
23 | |
---|
24 | ;================================ Installation ============================================================ |
---|
25 | ; |
---|
26 | ; r = _RunLog(3) w = WinWaitActive(3) c = ControlCommand(5) k = ControlClick(7) s = Send(2) 1 = extra1 |
---|
27 | ; |
---|
28 | ;========================================================================================================== |
---|
29 | |
---|
30 | Dim $aDlg1[100][1 + 7] = [ _ |
---|
31 | ["r", $sCmdLine, $sWorkDir, "0", "", "", "", ""], _ ;start install |
---|
32 | ["w", "Norton Commander", "Willkommen bei Symantec Setup", "", "", "", "", ""], _ |
---|
33 | ["c", "Norton", "", "Edit1", "EditPaste", $sName, "", ""], _ |
---|
34 | ["s", "{TAB}", "", "", "", "", "", ""], _ |
---|
35 | ["s", "+{END}", "", "", "", "", "", ""], _ |
---|
36 | ["c", "Norton", "", "Edit2", "EditPaste", $sOrg, "", ""], _ |
---|
37 | ["s", "!w", "", "", "", "", "", ""], _ |
---|
38 | ["s", "!w", "", "", "", "", "", ""], _ |
---|
39 | ["s", "!a", "", "", "", "", "", ""], _ |
---|
40 | ["s", "+{END}", "", "", "", "", "", ""], _ |
---|
41 | ["c", "Norton", "Speicherort des Programms", "Edit1", "EditPaste", $sPath, "", ""], _ |
---|
42 | ["s", "!w", "", "", "", "", "", ""], _ |
---|
43 | ["s", "!w", "", "", "", "", "", ""], _ |
---|
44 | ["c", "", "&NC starten", "Button2", "Check", "", "", ""], _ |
---|
45 | ["s", "!w", "", "", "", "", "", ""], _ |
---|
46 | ["s", "!w", "", "", "", "", "", ""], _ |
---|
47 | ["w", "Norton", "StandardCare Support", "", "", "", "", ""], _ ;installiert... |
---|
48 | ["s", "!w", "", "", "", "", "", ""], _ |
---|
49 | ["s", "{SPACE}", "", "", "", "", "", ""], _ |
---|
50 | ["s", "{SPACE}", "", "", "", "", "", ""], _ |
---|
51 | ["1", "", "", "", "", "", "", ""], _ ;delete Temp Files |
---|
52 | ["", "", "", "", "", "", "", ""]] ;letzte Zeile special |
---|
53 | |
---|
54 | Dim $aDlg2[100][1 + 7] = [ _ |
---|
55 | ["r", $sPath & "\NC.EXE", $sPath, "0", "", "", "", ""], _ ;start NC |
---|
56 | ["w", "NC Rechts", "1-Hilfe", "", "", "", "", ""], _ |
---|
57 | ["s", "{F9}", "", "", "", "", "", ""], _ |
---|
58 | ["s", "b", "", "", "", "", "", ""], _ |
---|
59 | ["s", "o", "", "", "", "", "", ""], _ |
---|
60 | ["w", "Konfigurationsoptionen", "Allg. Einstell.", "3", "", "", "", ""], _ |
---|
61 | ["c", "", "&Kopieren", "Button2", "UnCheck", "", "", ""], _ ;Bestätigungen |
---|
62 | ["c", "", "&Bewegen", "Button3", "UnCheck", "", "", ""], _ |
---|
63 | ["c", "", "&Löschen", "Button4", "Check", "", "", ""], _ |
---|
64 | ["c", "", "B&eenden", "Button5", "UnCheck", "", "", ""], _ |
---|
65 | ["k", "", "&Integriert", "Button7", "", "", "", ""], _ ;Editor 1 |
---|
66 | ["k", "", "E&xtern", "Button8", "", "", "", ""], _ ;Editor 2 |
---|
67 | ["c", "", "&Durch Kennwort schützen", "Button10", "UnCheck", "", "", ""], _ ;Komprimierung |
---|
68 | ["c", "", "Ei&nrichtung automatisch speichern", "Button12", "Check", "", "", ""], _ |
---|
69 | ["c", "", "Editor", "Edit1", "EditPaste", $sEditor, "", ""], _ |
---|
70 | ["s", "^{TAB}", "", "", "", "", "", ""], _ |
---|
71 | ["w", "Konfigurationsoptionen", "Bildschirm", "3", "", "", "", ""], _ |
---|
72 | ["c", "", "&Werkzeugleiste", "Button2", "Check", "", "", ""], _ |
---|
73 | ["c", "", "&Statusleiste", "Button3", "Check", "", "", ""], _ |
---|
74 | ["c", "", "&Fensterstatusleiste", "Button4", "Check", "", "", ""], _ |
---|
75 | ["c", "", "&DOS-Befehlszeile", "Button5", "Check", "", "", ""], _ |
---|
76 | ["c", "", "&Registerleiste", "Button6", "Check", "", "", ""], _ |
---|
77 | ["c", "", "Fens&tertitelleiste", "Button7", "Check", "", "", ""], _ |
---|
78 | ["c", "", "Fun&ktionstastenleiste", "Button8", "Check", "", "", ""], _ |
---|
79 | ["c", "", "&Uhr", "Button9", "Check", "", "", ""], _ |
---|
80 | ["c", "", "&Versteckte Dateien anzeigen", "Button10", "Check", "", "", ""], _ |
---|
81 | ["c", "", "Ver&zeichnisse auswählen", "Button11", "Check", "", "", ""], _ |
---|
82 | ["c", "", "&Original Groß-/Kleinschreibung", "Button12", "Check", "", "", ""], _ |
---|
83 | ["c", "", "&Einfügen bewegt nach unten", "Button13", "Check", "", "", ""], _ |
---|
84 | ["c", "", "&Auto-Verzeichniswechsel", "Button14", "Check", "", "", ""], _ |
---|
85 | ["c", "", "Auto&matische Menüs", "Button15", "UnCheck", "", "", ""], _ |
---|
86 | ["c", "", "Akt&iv", "Button18", "UnCheck", "", "", ""], _ ;Bildschirmschoner |
---|
87 | ["s", "^{TAB 2}", "", "", "", "", "", ""], _ |
---|
88 | ["w", "Konfigurationsoptionen", "Kompatibilität", "3", "", "", "", ""], _ |
---|
89 | ["k", "", "A&nfangsbuchstabe (Umgeht DOS-Eingabeaufforderung)", "Button4", "", "", "", ""], _ ;Schnellsuche in Fenstern 3 |
---|
90 | ["k", "", "<&ALT> (Setzt Windows-Standard außer Kraft)", "Button3", "", "", "", ""], _ ;Schnellsuche in Fenstern 2 |
---|
91 | ["k", "", "<&STRG-ALT>", "Button2", "", "", "", ""], _ ;Schnellsuche in Fenstern 1 |
---|
92 | ["k", "", "&Rechtsklicken wählt Dateien aus", "Button5", "", "", "", ""], _ ;Maus 1 |
---|
93 | ["k", "", "R&echtsklicken zeigt Menü an", "Button6", "", "", "", ""], _ ;Maus 2 |
---|
94 | ["c", "", "&In den Papierkorb verschieben", "Button7", "Check", "", "", ""], _ ;Löschen |
---|
95 | ["s", "{ENTER}", "", "", "", "", "", ""], _ |
---|
96 | ["s", "^q", "", "", "", "", "", ""], _ ;kick Qickview |
---|
97 | ["s", "{SPACE}", "", "", "", "", "", ""], _ |
---|
98 | ["s", "{ENTER}", "", "", "", "", "", ""], _ |
---|
99 | ["s", "^q", "", "", "", "", "", ""], _ |
---|
100 | ["s", "{F10}", "", "", "", "", "", ""], _ |
---|
101 | ["", "", "", "", "", "", "", ""]] ;letzte Zeile special |
---|
102 | |
---|
103 | ;==================================================== Deinstallation ==================================================== |
---|
104 | ; |
---|
105 | ; dm = DirMove(2) fm = FileMove(2) dr = DirRemove(1) fd = FileDelete(1) rk = RegDelete(1) rv = RegDelete(2) key/value |
---|
106 | ; |
---|
107 | ;======================================================================================================================== |
---|
108 | |
---|
109 | Dim $aDel1[100][1 + 2] = [ _ |
---|
110 | ["dr", $sPath, ""], _ |
---|
111 | ["dr", @ProgramFilesDir & "\Norton Commander", ""], _ ;Default-Vorgabe, mit $sPath überschrieben |
---|
112 | ["dr", @ProgramsCommonDir & "\Norton Commander", ""], _ ;Startmenü |
---|
113 | ["fd", @DesktopDir & "\Norton Commander.LNK", ""], _ |
---|
114 | ["fd", @WindowsDir & "\siwini.ini", ""], _ |
---|
115 | ["fd", @WindowsDir & "\~SYMSHEL.EXE", ""], _ |
---|
116 | ["fd", @WindowsDir & "\~SYMINST.EXE", ""], _ |
---|
117 | ["fd", @WindowsDir & "\~SYMINST.PIF", ""], _ |
---|
118 | ["fd", @WindowsDir & "\_SYMINST.BAT", ""], _ |
---|
119 | ["fd", @WindowsDir & "\WININIT.SIW", ""], _ |
---|
120 | ["fm", @WindowsDir & "\WININIT.INI", @WindowsDir & "\WININIT.BAK"], _ |
---|
121 | ["fd", @SystemDir & "\Norton Commander-Logo-Animation.Scr", ""], _ |
---|
122 | ["fd", @SystemDir & "\Norton Commander Sternenhimmel.Scr", ""], _ |
---|
123 | ["fd", @SystemDir & "\SERIAL.SYS", ""], _ |
---|
124 | ["fd", @SystemDir & "\PARPORT.SYS", ""], _ |
---|
125 | ["rk", "HKLM\Software\Symantec", ""], _ |
---|
126 | ["rk", "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Norton Commander", ""], _ |
---|
127 | ["rv", "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager", "PendingFileRenameOperations"], _ |
---|
128 | ["rv", "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce", "Symantec Installer for Windows"], _ |
---|
129 | ["rv", "HKLM\System\CurrentControlSet\Control\Shutdown", "SetupProgramRan"], _ |
---|
130 | ["rk", "HKCU\Software\Symantec", ""], _ |
---|
131 | ["", "", ""]] ;letzte Zeile special |
---|
132 | |
---|
133 | ;################################# ab hier keine Änderungen nötig ################################# |
---|
134 | |
---|
135 | $sLogFile = @ScriptDir & "\" & @ComputerName & "-" & @UserName & ".log" |
---|
136 | |
---|
137 | Func _Log($string, $exit) |
---|
138 | _FileWriteLog($sLogFile, $string) |
---|
139 | If $exit Then Exit |
---|
140 | EndFunc |
---|
141 | |
---|
142 | Func _RunLog($cmdline, $workdir, $wait) |
---|
143 | _Log($cmdline, 0) |
---|
144 | |
---|
145 | If $wait Then |
---|
146 | RunWait($cmdline, $workdir) |
---|
147 | Else |
---|
148 | Run($cmdline, $workdir) |
---|
149 | EndIf |
---|
150 | |
---|
151 | If @error Then _Log("Ablauffehler!", 1) |
---|
152 | EndFunc |
---|
153 | |
---|
154 | _Log("-------------------------------------------------------", 0) |
---|
155 | _Log(@OSVersion & " " & @OSServicePack & " Build: " & @OSBuild, 0) |
---|
156 | |
---|
157 | Switch MsgBox($MB_YESNOCANCEL + $MB_ICONQUESTION, "AutoIt-Script", "Norton Commander 95/NT Install (Yes) oder Deinstall (No)?") |
---|
158 | Case $IDYES |
---|
159 | For $z = 1 To $iCntDlg |
---|
160 | For $y = 0 To 99 |
---|
161 | For $x = 0 To 7 |
---|
162 | $aDlg[$y][$x] = Execute("$aDlg" & $z & "[$y][$x]") |
---|
163 | Next |
---|
164 | Next |
---|
165 | |
---|
166 | For $cnt = 0 To UBound($aDlg) - 1 |
---|
167 | Dim $p0 = $aDlg[$cnt][0], $p1 = $aDlg[$cnt][1], $p2 = $aDlg[$cnt][2], $p3 = $aDlg[$cnt][3] |
---|
168 | Dim $p4 = $aDlg[$cnt][4], $p5 = $aDlg[$cnt][5], $p6 = $aDlg[$cnt][6], $p7 = $aDlg[$cnt][7] |
---|
169 | |
---|
170 | Switch $p0 |
---|
171 | Case "r" |
---|
172 | If $p3 = "0" Then $p3 = "" ;Falle! |
---|
173 | _RunLog($p1, $p2, $p3) |
---|
174 | |
---|
175 | Case "w" |
---|
176 | If Not $p3 Then $p3 = 9 ;default timeout |
---|
177 | If Not WinWaitActive($p1, $p2, $p3) Then _Log("TimeOut: " & $p1 & " - " & $p2, 1) |
---|
178 | |
---|
179 | Case "c" |
---|
180 | ControlCommand($p1, $p2, $p3, $p4, $p5) |
---|
181 | |
---|
182 | Case "k" |
---|
183 | If Not $p5 Then $p5 = 1 ;single-click |
---|
184 | ControlClick($p1, $p2, $p3, $p4, $p5, $p6, $p7) |
---|
185 | |
---|
186 | Case "s" |
---|
187 | Send($p1, $p2) |
---|
188 | |
---|
189 | Case "1" ;special 1 |
---|
190 | FileDelete(@WindowsDir & "\~SYMINST.EXE") |
---|
191 | |
---|
192 | RegDelete("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager", "PendingFileRenameOperations") |
---|
193 | |
---|
194 | $fh = FileFindFirstFile("\~SIW*") |
---|
195 | If $fh = -1 Then ContinueLoop |
---|
196 | |
---|
197 | While 1 |
---|
198 | $tmp = FileFindNextFile($fh) |
---|
199 | If @error Then ExitLoop |
---|
200 | |
---|
201 | If FileExists("\" & $tmp & "\SIWDLL32.DLL") Then |
---|
202 | DirRemove("\" & $tmp, 1) |
---|
203 | EndIf |
---|
204 | WEnd |
---|
205 | |
---|
206 | FileClose($fh) |
---|
207 | |
---|
208 | Case "" |
---|
209 | ExitLoop |
---|
210 | |
---|
211 | Case Else |
---|
212 | _Log("Invalid Command: " & $p0, 1) |
---|
213 | EndSwitch |
---|
214 | |
---|
215 | Sleep($iCmdDelay) |
---|
216 | Next |
---|
217 | Next |
---|
218 | |
---|
219 | _Log("Installation erfolgreich.", 0) |
---|
220 | |
---|
221 | Case $IDNO |
---|
222 | _Log("Uninstall...", 0) |
---|
223 | |
---|
224 | $dir = IniRead(@WindowsDir & "\siwini.ini", "install", "tempdir", "") ;bei Install-Abbruch |
---|
225 | If $dir Then DirRemove($dir, 1) |
---|
226 | |
---|
227 | For $z = 1 To $iCntDel |
---|
228 | For $y = 0 To 99 |
---|
229 | For $x = 0 To 7 |
---|
230 | $aDel[$y][$x] = Execute("$aDel" & $z & "[$y][$x]") |
---|
231 | Next |
---|
232 | Next |
---|
233 | |
---|
234 | For $cnt = 0 To UBound($aDel) - 1 |
---|
235 | Dim $p0 = $aDel[$cnt][0], $p1 = $aDel[$cnt][1], $p2 = $aDel[$cnt][2] |
---|
236 | |
---|
237 | Switch $p0 |
---|
238 | Case "dm" |
---|
239 | DirMove($p1, $p2, 1) ;overwrite |
---|
240 | |
---|
241 | Case "fm" |
---|
242 | FileMove($p1, $p2, 1 + 8) ;overwrite + create |
---|
243 | |
---|
244 | Case "dr" |
---|
245 | DirRemove($p1, 1) ;files and dirs |
---|
246 | |
---|
247 | Case "fd" |
---|
248 | FileDelete($p1) |
---|
249 | |
---|
250 | Case "rk" |
---|
251 | RegDelete($p1) ;complete key |
---|
252 | |
---|
253 | Case "rv" |
---|
254 | RegDelete($p1, $p2) ;single value, (Default) value is "" |
---|
255 | |
---|
256 | Case "" |
---|
257 | ExitLoop |
---|
258 | |
---|
259 | Case Else |
---|
260 | _Log("Invalid Command: " & $p0, 1) |
---|
261 | |
---|
262 | EndSwitch |
---|
263 | Next |
---|
264 | Next |
---|
265 | |
---|
266 | _Log("Deinstallation erfolgreich.", 0) |
---|
267 | |
---|
268 | Case Else |
---|
269 | _Log("Abbruch!", 0) |
---|
270 | |
---|
271 | EndSwitch |
---|