was ist an dem code falsch?
Spoiler anzeigen
#RequireAdmin
IsAdmin()
#include-once
#include <Date.au3>
#include <Array.au3>
#include <File.au3>
#include <DateTimeConstants.au3>
Global $sFile,$tFile,$tPath
Global $sPath = @ScriptDir
Global $hSearch = FileFindFirstFile($sPath & "\*.dll")
Global $tSearch = FileFindFirstFile($tPath & "\*.dll")
If @OSArch = "64" Then
$tPath = "\%Systemroot%\System32\" ;Die 64-Bit-Version ist
Else
If @OSArch = "86" Then
$tPath = "\%Systemroot%\SysWoW64\" ;Die 32-Bit-Version ist
EndIf
EndIf
If $hSearch = -1 Then
TrayTip("Info", "Keine neuen DLLs enthalten ! ", 5, 1)
Sleep(1250)
TrayTip("clears any tray tip", "", 0)
Exit
EndIf
While True
$sFile = FileFindNextFile($hSearch)
If @error Then ExitLoop
$tFile = FileFindNextFile($tSearch)
If @error Then _Neu()
_Version()
ExitLoop
WEnd
Func _Neu()
FileCopy($sFile , $tPath, 9)
Sleep(50)
ShellExecute("regsvr32.exe" , "'" & $tPath & "\" & $sFile & "'")
ConsoleWrite("Dll registriert: " & $sFile & @CRLF)
Sleep(50)
Exit
EndFunc
Func _Version()
[/autoit] [autoit][/autoit] [autoit]Local $Fileversion1 = FileGetVersion($hSearch, 1)
If @error Then _Time()
Local $Fileversion2 = FileGetVersion($tSearch, 1)
If @error Then _Time()
If $Fileversion1 > $Fileversion2 Then
FileDelete($Fileversion2)
Sleep(50)
FileCopy($Fileversion1 , $Fileversion2, 9)
Sleep(50)
ShellExecute("regsvr32.exe" , ' /s ' & $tPath & "/" & $tFile & "'")
ConsoleWrite("Dll registriert: " & $tFile & @CRLF)
Sleep(50)
Else
FileDelete($Fileversion1)
Sleep(50)
ConsoleWrite("KEINE Dll registriert: " & $tFile & @CRLF)
Sleep(50)
Endif
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Time()
[/autoit] [autoit][/autoit] [autoit]Local $File1 = FileGetTime($hSearch, 1)
Local $File2 = FileGetTime($tSearch, 1)
If Not @error Then
If $File1[0]>$File2[0] or $File1[1]>$File2[1] or $File1[2]>$File2[2] or $File1[3]>$File2[3] or $File1[4]>$File2[4] then ; mit [5] haste auch noch die Sekunden
FileDelete($File2) ;oder du machst FileCopy und mit dem flag das er es überschreiben soll FileCopy("Pfad wo es jetzt liegt", "Pfadwo es hin soll",1) die 1 heisst überschreiben
Sleep(50)
FileCopy($File1, $File2, 9)
Sleep(50)
ShellExecute("regsvr32.exe", "'" & $tPath & "\" & $tFile & "'")
ConsoleWrite("Dll registriert: " & $tFile & @CRLF)
TrayTip("Info", "Dll registriert: " & $tFile & @CRLF , 5, 1)
Sleep(2500)
TrayTip("clears any tray tip", "", 0)
Sleep(50)
Else
FileDelete($File1)
Sleep(50)
ConsoleWrite("KEINE Dll registriert: " & $tFile & @CRLF)
TrayTip("KEINE Dll registriert:", "$tFile & @CRLF " , 5, 1)
Sleep(2500)
TrayTip("clears any tray tip", "", 0)
Sleep(50)
Endif
EndIf
;$Filex[0] = year (four digits) x steht für die jeweilige Zahl
;$Filex[1] = month (range 01 - 12)
;$Filex[2] = day (range 01 - 31)
;$Filex[3] = hour (range 00 - 23)
;$Filex[4] = min (range 00 - 59)
;$Filex[5] = sec (range 00 - 59)
EndFunc