Hallo,
Habe mir einen Updater geschrieben, der die Versionsnummer des Programmes in einer TXT datei speichert. Jedoch will er diese Datei einfach nicht auf die Festplatte schreiben. Dies tritt immer nur bei diesem einem Script auf. Habe acuh schon ohne Variablen usw. Ich probiere schon seit Stunden herum, jedoch lässt sich die Datei durch AutoIt einfach nicht erstellen(nur manuell). Am Anfang des Scriptes wird die Locale versionsdatei erstellt und mit FileWriteLine die Versionsnummer, die dann mit FileClose geschlossen wird, jedoch wenn ich dann versuche die Locale Versionsdatei zu öffnen, steht dort: Auf die Datei wird gerade zugegriffen. Dann schließt sich der Edit
Hier das Updater Script:
Spoiler anzeigen
$servername = "www.int-tut.bplaced.net"
$projektname = "filemanager/InteraktivesTutorial/updates"
$exedatei = "InterTutorials_Gui.exe"
$temp = @DocumentsCommonDir & "\temp"
$update = MsgBox(52, "Updateassistent", "Das Programm wird sich mit dem Internet verbinden, um nach Updates zu suchen. Jetzt verbinden?")
Select
Case $update = 6
If Not FileExists($temp) Then
DirCreate(@DocumentsCommonDir & "\temp")
EndIf
ProgressOn("Updater", "Überprüfe, ob Server erreichbar ist...")
Sleep(2000)
If Ping($servername,250) Then
ProgressSet(20, "Updater", "Verbunden!")
Sleep(2000)
Else
ProgressOff()
MsgBox(16,"FEHLER", "Das Update Modul hat einen Fehler abgefangen, Grund: der Server ist leider nicht erreichbar oder deine Internetverbindung ist nicht aktiviert.")
Return
EndIf
;Hier unten ist das Problem. Im öffentlichen Dokumenten Ordner und dem Unterordner Temp wird die Datei überhaupt nicht angezeigt
InetGet("http://" & $servername & "/" & $projektname & "/version.txt", @DocumentsCommonDir & "\temp" & "\version.txt")
If InetGet("http://" & $servername & "/" & $projektname & "/version.txt", @DocumentsCommonDir & "\temp" & "\version.txt") Then
ProgressSet(40, "Updater", "Lade Update Info Datei herunter...")
Sleep(2000)
EndIf
$downloaded = FileReadLine($temp & "\version.txt")
$localversion = FileReadLine(@DocumentsCommonDir & "\version.txt")
ProgressSet(60, "Updater", "Vergleiche Server Version mit local Version...")
Sleep(2000)
If $downloaded = $localversion Then
ProgressOff()
MsgBox(16, "Updater", "Keine neue Version vom Interaktivem Tutorial verfügbar")
FileDelete($temp & "\version.txt")
Return
EndIf
If $downloaded > $localversion Then
ProgressSet(80, "Updater", "Lade neue Version herunter...")
Sleep(2000)
InetGet("http://" & $servername & "/" & $projektname & "/" & $exedatei, @DesktopDir & $exedatei)
ProgressSet(90, "Updater", "Schließe Installation ab...")
Sleep(2000)
FileClose(@DocumentsCommonDir & "\version.txt")
FileClose($temp & "\version.txt")
ProgressSet(95, "Updater", "Aktualisiere Versionsdaten...")
Sleep(1000)
FileCopy($temp & "\version.txt", @DocumentsCommonDir & "\version.txt")
ProgressSet(100, "Updater", "Lösche temporäre Dateien...")
Sleep(1000)
FileDelete($temp & "\version.txt")
ProgressOff()
MsgBox(64, "Updater", "Eine neue Version von " & $exedatei & " wurde installiert, das neue Programm befindet sich auf dem Desktop")
EndIf
Case $update = 7
MsgBox(64, "Updateassistent", "Update verweigert")
Return
EndSelect
EndFunc
;---->ENDE VON UPDATER