Ticket #678: Norton95.au3

File Norton95.au3, 11.0 KB (added by dutCh, on Nov 14, 2008 at 9:20:07 PM)

shows the enforced work with confined arrays. BAD!!

Line 
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
22Dim $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
30Dim $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
54Dim $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
109Dim $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
137Func _Log($string, $exit)
138 _FileWriteLog($sLogFile, $string)
139 If $exit Then Exit
140EndFunc
141
142Func _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)
152EndFunc
153
154_Log("-------------------------------------------------------", 0)
155_Log(@OSVersion & " " & @OSServicePack & " Build: " & @OSBuild, 0)
156
157Switch 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
271EndSwitch