| 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
|
|---|