Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 22:08

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[AutoIt] Update Funktion für eure Bots

Discussion on [AutoIt] Update Funktion für eure Bots within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
Killerzwerg829's Avatar
 
elite*gold: 30
Join Date: Feb 2009
Posts: 1,296
Received Thanks: 451
[AutoIt] Update Funktion

Hallo.

Ich möchte euch zeigen, wie ihr eine simple Update Funktion für eure Bots erstellt. Seid nicht zu hart zu mir, weil das mein erstes Tutorial ist



Als bevor wir mit den Code anfangen, werde ich euch das Prinzip erklären:


- Es gibt ein kleines Programm, welches das Update durchführt. Dieses könnt ihr einfach via Run() mit euren Bot mitstarten lassen. Dies wird benötigt, da sich nicht so leicht eine laufendes Programm überschreiben lässt.

- Das Update Programm läd dann eine *.txt Datei von einem FTP Server runter.

- Dieser Datei wird dann mit der Version des Bots abgeglichen.

- Wenn diese sich unterscheiden sollten, wird nachgefragt, ob der User ein Update möchte.

- Wenn der User dies möchte, wird Bot geschlossen und es wird die neuere Version runtergeladen und überschrieben.

- Wenn alles fertig ist, wird der Bot neu gestartet.





So, nun kommen wir zur "Schritt für Schritt" Anleitung.



PHP Code:
#notrayicon
sleep(1500)
FileDelete(@TempDir "\update.txt")
InetGet("ftp://dein-ftp-server.de/Dein-Bot-Verzeichnis/update.txt",@TempDir "\update.txt"10
Hier warten wir ersteinmal 1,5 Sekunden. Dies ist wichtig, da sonst das Update Fenster möglicherweise unter dem eigentlichen Bot landet.
Dann überprüfen wir, ob im Temp Verzeichnis eine update.txt liegt und löschen sie.
Jetzt wird die neue update.txt heruntergeladen.




PHP Code:
$file FileOpen(@TempDir "\update.txt"0)
$ver_server FileReadLine($file1)
$ver_pc IniRead("Settings.ini""Info""Version","")
If 
$ver_server $ver_pc or $ver_server "" Then
FileClose
($file)
FileDelete(@TempDir "\update.txt")
Else 
Die gerade heruntergeladene update.txt wird nun aus dem Temp Verzeichnis geöffnet. Dann wird in die Variable "$ver_server" die Server Version gespeichert. Dies Funktioniert so, dass aus der update.txt die erste Zeile auslesen.
"$ver_pc" muss die Version den Bots enthalten. Ich speichere diese immer in die Settings.ini Datei meines Bots.
In der If abfrage wird überprüft, ob die Server Version mit der des Bots übereintstimmt.




PHP Code:
$msgbox MsgBox(36"Update!""Es ist ein neues Update verfügbar! Wollen sie es runterladen?")
If 
$msgbox 6 Then
Tooltip
("Update wird runtergeladen... bitte warten :-)")
ProcessClose ("Dein Bot.exe")
InetGet("ftp://dein-ftp-server.de/Dein-Bot-Verzeichnis/Dein Bot.exe",@scriptDir&"\" & "Dein Bot", 1, 0)
IniWrite("
Settings.ini", "Info", "Version", $ver_server)
FileClose(
$file)
FileDelete(@ScriptDir & "
\update.txt")
Tooltip("") 
Wenn in der MessageBox Ja gedückt wurde, dann soll ein ToolTip erscheinen, dass das Update noch am runterladen ist.
Der Bot wird dann einfach über ProcessClose() geschlossen.
Dann kann die neuere Version des Bots in das Script Verzeichnis heruntergeladen werden.
Da ich meine Version immer in der Settings speichere, schreibe ich nun in die Settings.ini die neue Version des Bots.




PHP Code:
$mb = @InetGetBytesRead
$mb 
$mb 1000000
$mb 
StringLeft ($mb4)
msgbox(0,"Update""Das Programm wurde aktualisiert ;)" & @LF "Es wurden " $mb " mb empfangen.")
run("Dein Bot.exe")
EndIf
EndIf 
Durch @InetGetBytesRead bekommen wir heraus, wie viele Bytes übertragen wurden. Diese lange Zahl rechnen wir dann in Mb um und kürzen sie auf die ersten 4 Stellen.
In einer Message Box zeigen wir nun, dass das Update fertig ist und wie viel Mb empfangen wurden.
Zum guten Schluss wird noch der neue Bot automatisch gestartet



Unser Script ist nun fertig und sieht so aus:


PHP Code:
#notrayicon
sleep(1500)
FileDelete(@TempDir "\update.txt")
InetGet("ftp://dein-ftp-server.de/Dein-Bot-Verzeichnis/update.txt",@TempDir "\update.txt"10)
$file FileOpen(@TempDir "\update.txt"0)
$ver_server FileReadLine($file1)
$ver_pc IniRead("Settings.ini""Info""Version","")
If 
$ver_server $ver_pc or $ver_server "" Then
    FileClose
($file)
    
FileDelete(@TempDir "\update.txt")
Else
    
$msgbox MsgBox(36"Update!""Es ist ein neues Update verfügbar! Wollen sie es runterladen?")
    If 
$msgbox 6 Then
        Tooltip
("Update wird runtergeladen... bitte warten :-)")
        
ProcessClose ("Dein Bot.exe")
        
InetGet("ftp://dein-ftp-server.de/Dein-Bot-Verzeichnis/Dein Bot.exe",@scriptDir&"\" & "Dein Bot", 1, 0)
        IniWrite("
Settings.ini", "Info", "Version", $ver_server)
        FileClose(
$file)
        FileDelete(@ScriptDir & "
\update.txt")
        Tooltip("")
        
$mb = @InetGetBytesRead
        
$mb = $mb / 1000000
        
$mb = StringLeft ($mb, 4)
        msgbox(0,"
Update", "Das Programm wurde aktualisiert ;)" & @LF & "Es wurden " & $mb & " mb empfangen.")
        run("
Dein Bot.exe")
    EndIf
EndIf 



Ich weiß, dass man den Script an manchen Stellen kürzer schreiben könnte, aber so finde ich ihn übersichtlicher
Ich hoffe ich könnt etwas anfangen.


Wer keinen FTP Server hat, kann einfach einen auf seinem PC laufen lassen, oder auf sich kostenlosen Webspace auf Kilu o.ä. holen.


lg Chris
Killerzwerg829 is offline  
Thanks
20 Users
Old 02/08/2011, 17:29   #2
 
elite*gold: 0
Join Date: Nov 2010
Posts: 129
Received Thanks: 58
Wie kann man einen ftp server auf dem pc starten laufen lassen?
und was soll mann ins neue text dukument schreiben?!?

Aber für dein Erstes TuT Nice!
lolxd232 is offline  
Old 06/21/2011, 14:57   #3
 
elite*gold: 0
Join Date: Jul 2010
Posts: 2,073
Received Thanks: 601
O.o Ich weis der Thread ist alt und wurde vom Vorposter Hpchgepushed (#reported ) aber:

Was muss in der update.txt und settings.ini stehen?

High
♥ .Meroc' ♥ is offline  
Old 07/01/2011, 19:56   #4
 
elite*gold: 280
Join Date: Nov 2009
Posts: 2,005
Received Thanks: 26,683
Quote:
Originally Posted by Highlander™ View Post
O.o Ich weis der Thread ist alt und wurde vom Vorposter Hpchgepushed (#reported ) aber:

Was muss in der update.txt und settings.ini stehen?

High
hab es jetzt nur überflogen,

normal ist ja: If $ver_server = $ver_pc or $ver_server = "" Then

also ist z.b $ver_pc v1.1.1 (muß in der Settings.ini stehn)
und auf deinem Server eine Textdatei (namens : update.txt) in der steht: v1.1.1
*Dr.Bob* is offline  
Thanks
3 Users
Reply


Similar Threads Similar Threads
AutoIT Funktion
09/09/2010 - AutoIt - 6 Replies
Hey leute, ich habe mir ein Programm gemacht das automatisch f5 drückt. Das Problem ist nur ich muss das Fenster wo er f5 drücken soll immer offen lassen. Gibt es eine Funktion mitder der bot immernoch f5 drückt auch wenn das fenster wo f5 gedrückt werden soll minimiert wurde ?????
Radio Funktion in AutoIt
07/31/2009 - GW Bots - 7 Replies
wenn ich jetzt 2 "Radio's" erstellt habe wie mach ich die Func's noch dazu ? also $nm = GUICtrlCreateRadio("NM", 24, 8, 73, 17) $hm = GUICtrlCreateRadio("HM", 112, 8, 89, 17) Case $Start if $hm = true then
[AutoIT]If funktion
04/02/2009 - AutoIt - 5 Replies
also ich möchte einen bot machen. Er soll ein programm beenden wenn er einen bestimmten pixel gefunden hat, wenn er den pixel nicht findet sol ich das programm einfach wieder öffen. so jetzt zu meinen problem, wenn ich das einfach stur und mit If und endif mache dann macht er doch die ganze zeit das programm auf und versucht es zu schließen oder?
If not funktion (autoit)
02/02/2009 - Metin2 - 4 Replies
wie muss ich eig es in autoit schreiben wenn ich eine if not funktion haben will z.B If $Beispiel not = "irgendeinwert" wie gehört das richtig?



All times are GMT +1. The time now is 22:08.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.