Habe gerade kurz meine Standart-Update-Stellen in einem kleinem Skript für jedermann zusammengefasst.
Was die Funktion kann:
Sie verbindet sich mit dem FTP-Speicher.
Sie lädt die Update-Datei herunter.
Sie vergleicht die Versionen.
Wenn Update nötig ist,kommt eine anpassbare msgbox.
Die Vorteile sind:
- Log-Datei
- viele Parameter
- schnelle @error flag - Übersicht, zusätzlich bekommt die variable $err den @error wert (kenne mich mit @error nicht wirklich aus)
- es ist von mir und meine erste UDF
- schneller Support (pn an mich)
Die Variablen und Flags:
Spoiler anzeigen
Von Dankeschön,www.autoit.de
$_da_server = beispielsserver.kilu.de / ftp.extra.hu / etc.
$_da_usr = FTP-Loginname
$_da_pass = FTP-Loginpasswort
$_da_ftpdir = FTP-Verzeichnis,in der die Datei mit der Version liegt (root/update/etc.)
$_da_ftpdata = Name der Datei auf dem Server,welches die Version enthält
$_da_log = Pfad zur Log-Datei (default @DesktopCommonDir & "\update.log")
$_da_line = Zeile, in der die Versionsnummer steht (in der FTP-Datei)
$_da_oldversion = Version des aktuellen Skriptes
$_da_msg = Nachricht, die bei nötigem Update ausgegeben wird (default "Sie benötigen ein Update !")
$_da_msgflag = Flag der Msgbox (default 64)
@error = 1 - FTP-Server nicht erreichbar / Keine Internetverbidnung
@error = 2 - Versionsdatei nicht in @temp gefunden !
@error = 3 - Kein Update nötig
Das Skript:
Spoiler anzeigen
#include <Process.au3>
Func _updateftp(local $_da_server,local $_da_usr,local $_da_pass,local $_da_ftpdir,local $_da_ftpdata,local $_da_logpath = @DesktopCommonDir & "\update.log",local $_da_line,local $_da_oldversion,local $_da_msg = "Sie benötigen ein Update !",local $_da_msgflag = "64")
local $ping = Ping($server)
If $ping = 0 Then
SetError(1)
Return
EndIf
FileDelete(@tempdir & "\update.ftp")
Local $_da_FTPskript = @tempdir & "\update.ftp"
FileChangeDir(@tempdir)
FileWriteLine($_da_FTPskript,"open " & $_da_server)
FileWriteLine($_da_FTPskript,"USER " & $_da_usr & " " & $_da_pass)
FileWriteLine($_da_FTPskript,"cd " & $_da_ftpdir)
FileWriteLine($_da_FTPskript,"mget " & $_da_ftpdata )
FileWriteLine($_da_FTPskript,"bye")
_RunDOS("ftp.exe -n -i -s:" & $_da_FTPskript & " >" & $_da_logpath)
If not FileExists($_da_ftpdata) Then
FileDelete($_da_ftpskript)
SetError(2)
Return
EndIf
local $_da_read = FileReadLine($_da_ftpdata,$_da_line)
If $_da_read <> $_da_oldversion Then
MsgBox($_da_msgflag,"Update",$_da_msg)
Else
SetError(3)
EndIf
FileDelete($_da_ftpskript)
EndFunc
Verbesserungsvorschläge und Fehlermeldungen werden gerne entgegengenommen !
Habt bitte drauaf Rücksicht,dass dies meine erste UDF ist und ich mich mit der Marterie nicht wirklich auskenne (besonders was das aufrufen und die errors betrifft)
//Skript editiert