Hallo und ein gutes neues Jahr 2008
(wenns auch ein wenig spät sein sollte)
Könnte man das Script etwas kleiner oder besser gesagt mit weniger Befehlen erstellen?
Will sagen, die Platzhalter gleich ich die Arrays schreiben?
Wobei ich dann nicht weiß, wie ich die dann einzeln ansprechen kann?
Dann bin ich mir nicht sicher, ob ich am Schluß vor den If`s nicht 2x den Befehl : for $Element ... angeben müßte,
oder ob er das so auch nacheinander ausführt?
Danke schon mal!
Fintan
Spoiler anzeigen
$rpfile=@ScriptDir & "\notepad.exe"
$ServPf=@WindowsDir & "\servicepackfiles\i386\notepad.exe"
$wsi=@WindowsDir & "\source\WinXP\i386\notepad.exe"
$dlCaN=@SystemDir & "\dllcache\notepad.exe"
$SysNp=@SystemDir & "\notepad.exe"
$Wnpx=@WindowsDir & "\notepad.exe"
$npx="notepad.exe"
;backup Microsoft Notepad.exe
$WinBU=DirCreate(@WindowsDir & "\Notepad-backup")
If FileExists($Wnpx) Then FileCopy($Wnpx, $WinBU, 1)
$HmDr1=@HomeDrive & "\i386\notepad.exe"
If FileExists($HmDr1) Then FileCopy($HmDr1, $WinBU, 1)
$HmDr2=@HomeDrive & "\i386\NOTEPAD.EX_"
If FileExists($HmDr2) Then FileCopy($HmDr2, @WindowsDir & "\Notepad-backup\NOTEPAD.EX_", 1)
;temporary disables protection for notepad.exe
Dim $Array[7]
$Array[0] = $ServPf
$Array[1] = $dlCaN
$Array[2] = $SysNp
$Array[3] = $Wnpx
$Array[4] = $HmDr1
$Array[5] = $HmDr2
$Array[6] = $wsi
For $Element In $Array
If FileExists($Element) Then DllCall(@SystemDir & "\SFC_OS.DLL","dword", 5, "dword", 0, "wstr", $Element, "dword", -1)
Next
If FileExists($Element) Then FileCopy($rpfile, $Element, 1)
Exit
PS: Hey klasse, dass der Autoit Code jetzt farbig dargestellt wird.