Böses Update Script

  • HelperUpdate.au3

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <String.au3>
    #include <File.au3>
    #include <Array.au3>
    ;===============================================================================
    ; Function Name: _BuildInZIP($sPath, $s_a_ToZip, $fUnZip=True, $iIndexBase=1, $fOverwrite=True)
    ; Description: Erstellt aus einer Datei od. einem Array von Dateien eine ZIP-Datei
    ; mit Hilfe der Windows eigenen ZIP-Funktion
    ; Parameter(s): $sPath Pfad der zu erstellenden ZIP-Datei // Bestehenden ZIP-Datei
    ; $s_a_ToZip String der Einzeldatei oder Array der zu zippenden Dateien
    ; // Pfad des Zielordners, in den entpackt werden soll
    ; $fUnZip=True Entpacken=True, Packen=False (Standard)
    ; $iIndexBase Index Basis (erstes Element mit Pfad) des übergebenen Arrays (0 od.1)
    ; $fOverwrite Falls $sPath existiert ==> Überschreiben (Standard=True)
    ; Return Value(s): Erfolg 1
    ; Fehler set @error 1 - Überschreiben aus, aber Zieldatei existiert
    ; 2 - Zieldatei endet nicht auf ".zip"
    ; 3 - zu komprimierende Datei existiert nicht
    ; @extended: Anzahl der fehlenden Dateien
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _BuildInZIP($sPath, $s_a_ToZip, $fUnZip=False, $iIndexBase=1, $fOverwrite=True)
    Local $fh, $sNul = '', $sZIPHeader, $objShell = ObjCreate("Shell.Application"), $objZipOrdner, $err = 0
    $sPath = FileGetLongName($sPath, 1)
    If $fUnZip Then
    Local $temp, $objZip
    If Not FileExists($s_a_ToZip) Then DirCreate($s_a_ToZip)
    $temp = $objShell.Namespace($s_a_ToZip)
    $objZip = $objShell.Namespace($sPath)
    $temp.CopyHere($objZip.Items)
    Return 1
    EndIf
    If (Not $fOverwrite) And FileExists($sPath) Then Return SetError(1,0,0)
    If StringRight($sPath, 4) <> '.zip' Then Return SetError(2,0,0)
    For $i = 1 To 18
    $sNul &= Chr(0)
    Next
    $sZIPHeader = Chr(80) & Chr(75) & Chr(5) & Chr(6) & $sNul
    $fh = FileOpen($sPath, 10)
    FileWrite($fh, $sZIPHeader)
    FileClose($fh)
    $objZipOrdner = $objShell.Namespace($sPath)
    If Not IsArray($s_a_ToZip) Then
    If Not FileExists($s_a_ToZip) Then Return SetError(3,1,0)
    $objZipOrdner.CopyHere($s_a_ToZip)
    Sleep(1000)
    Return 1
    EndIf
    For $i = $iIndexBase To UBound($s_a_ToZip) -1
    If Not FileExists($s_a_ToZip[$i]) Then
    $err += 1
    ContinueLoop
    EndIf
    $objZipOrdner.CopyHere($s_a_ToZip[$i])
    Sleep(1000)
    Next
    If $err Then Return SetError(3,$err,0)
    Return 1
    EndFunc ;==>_BuildInZIP

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Einstellungen
    Global $countoflines = 6
    Global $txtfilename = "HelperUpdate.txt"
    Global $settingsfilename = "HelperUpdate.ini"
    Global $PW = "PASSWORT"
    Global $sSavePath3 = "C:\Program Files (x86)\Helper\Helper.exe"
    Global $weiter = 0

    [/autoit] [autoit][/autoit] [autoit]

    ; Datei öffnen
    Local $read = FileOpen("$txtfilename", 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Prüfen, ob Datei eingelesen wurde
    If $txtfilename = -1 Then
    MsgBox(0, "Fehler", "Das Textdokument "&$txtfilename&" konnte nicht eingelesen werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    ; Textdokument zu Variable
    $line = FileReadLine($txtfilename)
    Local $PID = ProcessExists("Helper.exe") ; Will return the PID or 0 if the process isn't found.
    If $PID Then ProcessClose($PID)

    ; Zeilen Zähler
    Local $CountLines = _FileCountLines("$line")
    If $CountLines > $countoflines Then
    Msgbox(64,"Fehler","Mehr als "&$countoflines&" Zeilen werden nicht unterstützt!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Automatische Überprüfung ob neue Version vorhanden ist
    ; Coming Soon

    [/autoit] [autoit][/autoit] [autoit]

    ;Manuelle Versionsabfrage
    ;Infofenster
    MsgBox ( 0, "Informationen", "In den nachfolgenden Fenster sollten Sie die Version in folgenden Format eingeben: 2_2_0_40")

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GuiOnEventMode',1) ;Schaltet den 'GuiOnEventMode' an
    Opt('OnExitFunc', 'Ende') ;Ruf die Funktion 'Ende' auf, wenn das Programm geschlossen wird

    [/autoit] [autoit][/autoit] [autoit]

    #Region .txt Datei Öffnen
    $File_Handle = FileOpen($settingsfilename, 2) ;Öffnet die Datei
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region GUI Erstellen
    $Form1 = GUICreate('Versionsnummer?', 181, 221, 192, 124) ;Erstellt ein Fenster
    GUISetOnEvent($GUI_EVENT_CLOSE, 'Ende') ;Wenn auf das 'X' geklickt wird, wird die Funktion 'Ende' aufgerufen
    $Edit1 = GUICtrlCreateEdit('', 0, 0, 180, 180) ;Erstellt ein Eingabefeld
    $Button1 = GUICtrlCreateButton('Speichern', 0, 180, 180, 40, $WS_GROUP) ;Erstellt den 'Sperichern' Button
    GUICtrlSetOnEvent(-1, 'Speichern') ;Wenn auf den Button 'Speichern' geklickt wird, wird die Funktion 'Speichern' aufgerufen
    GUISetState(@SW_SHOW) ;Zeigt das GUI
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Endlosschleife ;Sorgt dafür, dass das Programm sich nicht schließt
    While 1
    Sleep(100)
    If $weiter == 1 Then
    ExitLoop
    EndIf
    WEnd
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Funktionen
    Func Speichern()
    FileWrite($File_Handle, GUICtrlRead($Edit1)) ;Überschreibt die Datei mit dem Wert aus dem Eingabefeld
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Ende()
    FileClose($File_Handle) ;Schließt die Datei. Erst dann sieht man den Inhalt!!!
    Global $weiter = 1
    GUISetState(@SW_HIDE)
    EndFunc
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    ; Datei öffnen
    Local $read = FileOpen("$settingsfilename", 0)

    [/autoit] [autoit][/autoit] [autoit]

    #Region HelperInstaller

    [/autoit] [autoit][/autoit] [autoit]

    ; Prüfen, ob Datei eingelesen wurde
    If $settingsfilename = -1 Then
    MsgBox(0, "Fehler", "Die Datei "&$settingsfilename&" konnte nicht eingelesen werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    ; Textdokument zu Variable
    $line2 = FileReadLine($settingsfilename)

    ; Globale Links für Download, Variable muss existieren
    Global $sDownloadLink = "https://Blub.de/HelperInstaller_"&$line2&".zip?attredirects=0"
    Global $sPath = @TempDir&"\HelperInstaller_"&$line2&".zip"
    Global $sSavePath21 = @TempDir&"\HelperInstaller_"&$line2&"\HelperInstaller.exe"
    Global $sSavePath22 = @TempDir&"\HelperInstaller_"&$line2&"\"
    Global $s_a_ToZip = @TempDir&"\HelperInstaller_"&$line2&"\"

    [/autoit] [autoit][/autoit] [autoit]

    ; Download des neuen Programmes
    MsgBox(0, "Information", "Beginne Download des Programmes!")
    Sleep(3000)
    Local $DownloadFile = InetGet($sDownloadLink,$sPath,1,1)

    [/autoit] [autoit][/autoit] [autoit]

    Do
    Sleep(250)
    Until InetGetInfo($DownloadFile, 2)

    [/autoit] [autoit][/autoit] [autoit]

    ; Überprüfung der Datei
    If FileExists($sPath) Then
    If FileGetSize($sPath) = InetGetSize($sDownloadLink) Then
    Sleep(250)
    ; Entpacken und ausführen
    _BuildInZIP($sPath, $s_a_ToZip, True, 0, True)
    Sleep(10000)
    $sPass = 1
    Run($sSavePath21, $sSavePath22, @SW_SHOW)
    If Not @error Then
    ;Installation
    Sleep(2000)
    WinActivate("Helper for rama Installation: Zielverzeichnis")
    Sleep(500)
    ControlClick("Helper for rama Installation: Zielverzeichnis", "", "1", "left")
    Sleep(5000)
    ControlClick("Helper for rama Installation: Fertig", "", "1", "left")
    If SLeep(500) Then
    ;Variablen
    Local $Split = StringSplit("$line", ",")
    Local $text = "This\nline\ncontains\nC-style breaks."
    Local $array = StringSplit($text, '\n', 1)
    ;Programm starten
    ShellExecute (""&$sSavePath3&"")
    For $Split = 1 To ubound($Split,1)
    Sleep(500)
    WinActivate ( "Helper for rama")
    Sleep(2000)
    ControlClick("Helper for rama", "", "40248", "left")
    Sleep(500)
    ControlClick("Account Liste", "", "40246", "left")
    Sleep(500)
    ControlClick("Account Liste", $Split[1]), "", "left"
    Sleep(500)
    ControlClick("Account Liste", "", "40245", "left")
    Sleep(500)
    Next
    Sleep(10000)
    ControlClick("Account Liste", "", "2", "left")
    Sleep(500)
    WinClose("Helper for rama")
    Sleep(500)
    MsgBox ( 0, "Informationen", "Alle Aufgaben erledigt!")
    Sleep(5000)
    Exit
    Else
    MsgBox(0, "Fehler", "Code:05. Installation fehlgeschlagen!")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    Else
    MsgBox(0, "Fehler", "Code:04. Die Datei "&$sSavePath21&" konnte nicht als Admin ausgeführt werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    Else
    MsgBox(0, "Fehler", "Code:02. Die Datei "&$sPath&" entspricht nicht dieser Datei "&$sDownloadLink&" !")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    Else
    MsgBox(0, "Fehler", "Code:01. Die Datei "&$sPath&" existiert nicht!")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    #EndRegion

    [/autoit]

    HelperUpdate.txt

    Spoiler anzeigen
    Code
    HelperPro,
    HelperPro,

    HelperUpdate.ini

    Spoiler anzeigen
    Code
    Helper version = "2.2.0.38"

    Hallo,
    ich habe hier nen Script geschrieben, wo ich nen bisschen Hilfe bräuchte :D Ich bin erst vor kurzem angefangen mit AutoIt. Beim Script werden keine Fehler angezeigt und beim compilieren auch nicht... Aber das Gui öffnet sich irgendwie nicht... Das Script bleibt in der Warteschleife...
    Vielen Dank schon mal im voraus für eure Hilfe :D

    EDIT: Script von HelperUpdate.au3 überarbeitet
    EDIT2: Script von HelperUpdate.au3 überarbeitet

    4 Mal editiert, zuletzt von KillerKretsche (25. April 2013 um 14:37)

  • Jap... Das ist das ein zigste Script... Also wird nix vorher ausgeführt... Und hatte schon alles probiert...

    Und ja FarmHelper.exe ist ein Installer... Die Klicks dort installieren ein Programm und am ende die klicks bei for und danach starten die Programme

    Im Grundprinzip überprüft das Script ob ne neue Version da ist. Beendet alle Programme danach downloadet das Script das neue Programm und installiert es und führt es danach aus und startet es... Die User können in der HelperUpdate.txt ihre Login namen eingeben und das Script loggt sich dann mit denjenigen ein.. Und das Gui ist dafür da, die neue Versionsnummer einzugeben, die er unter der HelperUpdate.ini speichert... Später will ich das dann automatisch laufen lassen, also dass der auto. prüft ob eine neue Version da ist, aber da sich manchmal ja nicht nur eine zahl der Version ändert (wird für Download link + Dateinamen benötigt) habe ich es erstmal so versucht zu lösen

  • Hat er doch:

    [autoit]

    If @error = -1 Then ExitLoop

    [/autoit]

    Du musst zuerst mal herausfinden wo er stecken bleibt. Lass dir dazu z.B. einfach nach jedem Befehl eine Ausgabe auf der Konsole anzeigen.

    Gruss Shadowigor

  • Hi,
    habe das Script nochmal grob umgeschrieben... Nun klappt alles bis zum "Beginne Download des Programmes!" Im Temp Ordner ist auch keine gedownloadete Datei... Nach den Dialog geht der Script einfach aus...

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <String.au3>
    #include <File.au3>
    #include <array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ; Einstellungen
    $countoflines = 6
    $txtfilename = "HelperUpdate.txt"
    $settingsfilename = "HelperUpdate.ini"
    $PW = "PASSWORT"
    Global Const $sDownloadLink = "https://Blub.de/test/HelperInstaller_$line2.zip?attredirects=0"
    Global Const $sSavePath = @TempDir&"\HelperInstaller_$line2.zip"
    Global Const $sSavePath2 = @TempDir&"\HelperInstaller_$line2/HelperInstaller.exe"
    Global Const $sSavePath3 = "C:\Program Files (x86)\Helper\Helper.exe"
    Global $weiter = 0

    [/autoit] [autoit][/autoit] [autoit]

    ; Datei öffnen
    Local $read = FileOpen("$txtfilename", 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Prüfen, ob Datei eingelesen wurde
    If $txtfilename = -1 Then
    MsgBox(0, "Fehler", "Das Textdokument $txtfilename konnte nicht eingelesen werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    ; Textdokument zu Variable
    $line = FileReadLine($txtfilename)
    Local $PID = ProcessExists("Helper.exe") ; Will return the PID or 0 if the process isn't found.
    If $PID Then ProcessClose($PID)

    ; Zeilen Zähler
    Local $CountLines = _FileCountLines("$line")
    If $CountLines > $countoflines Then
    Msgbox(64,"Fehler","Mehr als $countoflines Zeilen werden nicht unterstützt!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Automatische Überprüfung ob neue Version vorhanden ist
    ; Coming Soon

    [/autoit] [autoit][/autoit] [autoit]

    ;Manuelle Versionsabfrage
    ;Infofenster
    MsgBox ( 0, "Informationen", "In den nachfolgenden Fenster sollten Sie die Version in folgenden Format eingeben: 2_2_0_40")

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GuiOnEventMode',1) ;Schaltet den 'GuiOnEventMode' an
    Opt('OnExitFunc', 'Ende') ;Ruf die Funktion 'Ende' auf, wenn das Programm geschlossen wird

    [/autoit] [autoit][/autoit] [autoit]

    #Region .txt Datei Öffnen
    $File_Handle = FileOpen($settingsfilename, 2) ;Öffnet die Datei
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region GUI Erstellen
    $Form1 = GUICreate('Form1', 181, 221, 192, 124) ;Erstellt ein Fenster
    GUISetOnEvent($GUI_EVENT_CLOSE, 'Ende') ;Wenn auf das 'X' geklickt wird, wird die Funktion 'Ende' aufgerufen
    $Edit1 = GUICtrlCreateEdit('', 0, 0, 180, 180) ;Erstellt ein Eingabefeld
    $Button1 = GUICtrlCreateButton('Speichern', 0, 180, 180, 40, $WS_GROUP) ;Erstellt den 'Sperichern' Button
    GUICtrlSetOnEvent(-1, 'Speichern') ;Wenn auf den Button 'Speichern' geklickt wird, wird die Funktion 'Speichern' aufgerufen
    GUISetState(@SW_SHOW) ;Zeigt das GUI
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Endlosschleife ;Sorgt dafür, dass das Programm sich nicht schließt
    While 1
    Sleep(100)
    If $weiter == 1 Then
    ExitLoop
    EndIf
    WEnd
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Funktionen
    Func Speichern()
    FileWrite($File_Handle, GUICtrlRead($Edit1)) ;Überschreibt die Datei mit dem Wert aus dem Eingabefeld
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Ende()
    FileClose($File_Handle) ;Schließt die Datei. Erst dann sieht man den Inhalt!!!
    Global $weiter = 1
    GUISetState(@SW_HIDE)
    EndFunc
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    ; Datei öffnen
    Local $read = FileOpen("$settingsfilename", 0)

    [/autoit] [autoit][/autoit] [autoit]

    #Region HelperInstaller

    [/autoit] [autoit][/autoit] [autoit]

    ; Prüfen, ob Datei eingelesen wurde
    If $settingsfilename = -1 Then
    MsgBox(0, "Fehler", "Die Datei $settingsfilename konnte nicht eingelesen werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    ; Textdokument zu Variable
    $line2 = FileReadLine($settingsfilename)

    [/autoit] [autoit][/autoit] [autoit]

    ; Download des neuen Programmes
    MsgBox(0, "Information", "Beginne Download des Programmes!")
    Local $DownloadFile = InetGet($sDownloadLink,$sSavePath,1,1)

    [/autoit] [autoit][/autoit] [autoit]

    Do
    Sleep(250)
    Until InetGetInfo($DownloadFile, 2)

    [/autoit] [autoit][/autoit] [autoit]

    ; Überprüfung der Datei
    If FileExists($sSavePath) Then
    If FileGetSize($sSavePath) = InetGetSize($sDownloadLink) Then
    Sleep(250)
    ; Entpacken & ausführen
    If Func _Zip_UnzipAll($DownloadFile, $sSavePath, 0) Then
    Sleep(10000)
    $sPass = 1
    RunAs("admin", "PC-Server", $PW, "0", @ComSpec & " /c start $sSavePath2", @SystemDir, @SW_SHOW)
    If Sleep(10000) Then
    ;Installation
    ControlClick("Helper for rama Installation: Zielverzeichnis", "", "[ID:1]")
    Sleep(5000)
    ControlClick("Helper for rama Installation: Fertig", "", "[ID:1]")
    If SLeep(500) Then
    ;Variablen
    Local $Split = StringSplit("$line", ",")
    Local $text = "This\nline\ncontains\nC-style breaks."
    If Local $array = StringSplit($text, '\n', 1) Then
    ;Programm starten
    ShellExecute("$sSavePath3")
    For $Split = 1 To ubound($Split,1)
    Sleep(500)
    ControlClick("Helper for rama", "", "[ID:40248]")
    Sleep(500)
    ControlClick("Account Liste", "", "[ID:40246]")
    Sleep(500)
    ControlClick("Account Liste", "", "[TEXT:$Split[1]]")
    Sleep(500)
    ControlClick("Account Liste", "", "[ID:40245]")
    Sleep(500)
    Next
    ControlClick("Account Liste", "", "[CLASS:32770]")
    Sleep(10000)
    ControlClick("Helper for rama", "", "[CLASS:32770]")
    Sleep(500)
    MsgBox ( 36, "Informationen", "Alle Aufgaben erledigt!" [, 15] )
    Sleep(5000)
    Exit

    EndIf
    EndIf
    EndIf
    Else
    MsgBox(0, "Fehler", "Fehler beim entpacken oder ausführen der Datei!")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    Else
    MsgBox(0, "Fehler", "Code:01. Die Datei $sDownloadLink konnte nicht heruntergeladen werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    EndIf

    #EndRegion

    [/autoit]
  • OT:

    Wenn du deinen Code strukturieren würdest, wäre er einfacher zu lesen > [url=http://autoit.de/index.php?page=Thread&threadID=31948[/url] klick

    Um Missverständnisse zu vermeiden, mein Name rührt vom Sternenbild und nicht vom Shop her :D


    Rainbow Dash :rock:

    "Das, wobei unsere Berechnungen versagen, nennen wir Zufall." (Albert Einstein)

  • Ich finde ich habe den einigermaßen gut strukturiert :D

    Ich glaube ich habe den Fehler gefunden:

    [autoit]


    Global Const $sDownloadLink = "https://Blub.de/HelperInstaller_$line2.zip?attredirects=0"
    Global Const $sSavePath = @TempDir&"\HelperInstaller_$line2.zip"
    Global Const $sSavePath2 = @TempDir&"\HelperInstaller_$line2/HelperInstaller.exe"

    [/autoit]

    Inhalt von $line2

    [autoit]


    2_2_0_40

    [/autoit]

    Anscheinend mag er das nicht, dass ich eine Variable in einer Variable habe... Dort bräuchte ich dann ne andere Lösung

  • natürlich mag er das nicht.
    Du solltest dir echt mal die Grundlagen zu Variablen und Verknüpfung von Strings angucken.

    [autoit]

    Global Const $sDownloadLink = "https://Blub.de/HelperInstaller_"&$line2&".zip?attredirects=0"

    [/autoit]
  • natürlich mag er das nicht.
    Du solltest dir echt mal die Grundlagen zu Variablen und Verknüpfung von Strings angucken.

    [autoit]

    Global Const $sDownloadLink = "https://Blub.de/HelperInstaller_"&$line2&".zip?attredirects=0"

    [/autoit]


    Oder du verwendest alternativ

    [autoit]

    Opt('ExpandVarStrings', 1)

    [/autoit]

    MfG

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Also ich habs jetzt mit den & gemacht gehabt und hat gefunzt :D
    Nun habe ich Probleme mit den Entpacken xDD
    Da _Zip_UnzipAll_ veraltet war habe ich nun Bugfix Script genommen aber da habe ich letztendlich nen Fehler in deren Script

    Fehlermeldung:
    Line 34 (File "HelperUpdate.au3"

    $temp.CopyHere($objZip.Items)
    $temp.CopyHere($objZip.Items)^ ERROR

    Error: The requested action with this object has failed.

    Er hat wohl nen Ordner im Temp erstellt ist aber nix drinne...

    Global $sSavePath = @TempDir&"\HelperInstaller_"&$line2&".zip"
    Global $sZipPath = @TempDir&"\HelperInstaller_"&$line2&"/"

    _BuildInZIP($sSavePath, $sZipPath, True, 0, True) habe ich verwendet

    Aktuelles Gemsamtscript:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <String.au3>
    #include <File.au3>
    #include <Array.au3>
    ;===============================================================================
    ; Function Name: _BuildInZIP($sPath, $s_a_ToZip, $fUnZip=True, $iIndexBase=1, $fOverwrite=True)
    ; Description: Erstellt aus einer Datei od. einem Array von Dateien eine ZIP-Datei
    ; mit Hilfe der Windows eigenen ZIP-Funktion
    ; Parameter(s): $sPath Pfad der zu erstellenden ZIP-Datei // Bestehenden ZIP-Datei
    ; $s_a_ToZip String der Einzeldatei oder Array der zu zippenden Dateien
    ; // Pfad des Zielordners, in den entpackt werden soll
    ; $fUnZip=True Entpacken=True, Packen=False (Standard)
    ; $iIndexBase Index Basis (erstes Element mit Pfad) des übergebenen Arrays (0 od.1)
    ; $fOverwrite Falls $sPath existiert ==> Überschreiben (Standard=True)
    ; Return Value(s): Erfolg 1
    ; Fehler set @error 1 - Überschreiben aus, aber Zieldatei existiert
    ; 2 - Zieldatei endet nicht auf ".zip"
    ; 3 - zu komprimierende Datei existiert nicht
    ; @extended: Anzahl der fehlenden Dateien
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _BuildInZIP($sPath, $s_a_ToZip, $fUnZip=False, $iIndexBase=1, $fOverwrite=True)
    Local $fh, $sNul = '', $sZIPHeader, $objShell = ObjCreate("Shell.Application"), $objZipOrdner, $err = 0
    $sPath = FileGetLongName($sPath, 1)
    If $fUnZip Then
    Local $temp, $objZip
    If Not FileExists($s_a_ToZip) Then DirCreate($s_a_ToZip)
    $temp = $objShell.Namespace($s_a_ToZip)
    $objZip = $objShell.Namespace($sPath)
    $temp.CopyHere($objZip.Items)
    Return 1
    EndIf
    If (Not $fOverwrite) And FileExists($sPath) Then Return SetError(1,0,0)
    If StringRight($sPath, 4) <> '.zip' Then Return SetError(2,0,0)
    For $i = 1 To 18
    $sNul &= Chr(0)
    Next
    $sZIPHeader = Chr(80) & Chr(75) & Chr(5) & Chr(6) & $sNul
    $fh = FileOpen($sPath, 10)
    FileWrite($fh, $sZIPHeader)
    FileClose($fh)
    $objZipOrdner = $objShell.Namespace($sPath)
    If Not IsArray($s_a_ToZip) Then
    If Not FileExists($s_a_ToZip) Then Return SetError(3,1,0)
    $objZipOrdner.CopyHere($s_a_ToZip)
    Sleep(1000)
    Return 1
    EndIf
    For $i = $iIndexBase To UBound($s_a_ToZip) -1
    If Not FileExists($s_a_ToZip[$i]) Then
    $err += 1
    ContinueLoop
    EndIf
    $objZipOrdner.CopyHere($s_a_ToZip[$i])
    Sleep(1000)
    Next
    If $err Then Return SetError(3,$err,0)
    Return 1
    EndFunc ;==>_BuildInZIP

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Einstellungen
    Global $countoflines = 6
    Global $txtfilename = "HelperUpdate.txt"
    Global $settingsfilename = "HelperUpdate.ini"
    Global $PW = "Passwort"
    Global $sSavePath3 = "C:\Program Files (x86)\Helper\Helper.exe"
    Global $weiter = 0

    [/autoit] [autoit][/autoit] [autoit]

    ; Datei öffnen
    Local $read = FileOpen("$txtfilename", 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Prüfen, ob Datei eingelesen wurde
    If $txtfilename = -1 Then
    MsgBox(0, "Fehler", "Das Textdokument "&$txtfilename&" konnte nicht eingelesen werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    ; Textdokument zu Variable
    $line = FileReadLine($txtfilename)
    Local $PID = ProcessExists("Helper.exe") ; Will return the PID or 0 if the process isn't found.
    If $PID Then ProcessClose($PID)

    ; Zeilen Zähler
    Local $CountLines = _FileCountLines("$line")
    If $CountLines > $countoflines Then
    Msgbox(64,"Fehler","Mehr als "&$countoflines&" Zeilen werden nicht unterstützt!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Automatische Überprüfung ob neue Version vorhanden ist
    ; Coming Soon

    [/autoit] [autoit][/autoit] [autoit]

    ;Manuelle Versionsabfrage
    ;Infofenster
    MsgBox ( 0, "Informationen", "In den nachfolgenden Fenster sollten Sie die Version in folgenden Format eingeben: 2_2_0_40")

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GuiOnEventMode',1) ;Schaltet den 'GuiOnEventMode' an
    Opt('OnExitFunc', 'Ende') ;Ruf die Funktion 'Ende' auf, wenn das Programm geschlossen wird

    [/autoit] [autoit][/autoit] [autoit]

    #Region .txt Datei Öffnen
    $File_Handle = FileOpen($settingsfilename, 2) ;Öffnet die Datei
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region GUI Erstellen
    $Form1 = GUICreate('Versionsnummer?', 181, 221, 192, 124) ;Erstellt ein Fenster
    GUISetOnEvent($GUI_EVENT_CLOSE, 'Ende') ;Wenn auf das 'X' geklickt wird, wird die Funktion 'Ende' aufgerufen
    $Edit1 = GUICtrlCreateEdit('', 0, 0, 180, 180) ;Erstellt ein Eingabefeld
    $Button1 = GUICtrlCreateButton('Speichern', 0, 180, 180, 40, $WS_GROUP) ;Erstellt den 'Sperichern' Button
    GUICtrlSetOnEvent(-1, 'Speichern') ;Wenn auf den Button 'Speichern' geklickt wird, wird die Funktion 'Speichern' aufgerufen
    GUISetState(@SW_SHOW) ;Zeigt das GUI
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Endlosschleife ;Sorgt dafür, dass das Programm sich nicht schließt
    While 1
    Sleep(100)
    If $weiter == 1 Then
    ExitLoop
    EndIf
    WEnd
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Funktionen
    Func Speichern()
    FileWrite($File_Handle, GUICtrlRead($Edit1)) ;Überschreibt die Datei mit dem Wert aus dem Eingabefeld
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Ende()
    FileClose($File_Handle) ;Schließt die Datei. Erst dann sieht man den Inhalt!!!
    Global $weiter = 1
    GUISetState(@SW_HIDE)
    EndFunc
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    ; Datei öffnen
    Local $read = FileOpen("$settingsfilename", 0)

    [/autoit] [autoit][/autoit] [autoit]

    #Region HelperInstaller

    [/autoit] [autoit][/autoit] [autoit]

    ; Prüfen, ob Datei eingelesen wurde
    If $settingsfilename = -1 Then
    MsgBox(0, "Fehler", "Die Datei "&$settingsfilename&" konnte nicht eingelesen werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    ; Textdokument zu Variable
    $line2 = FileReadLine($settingsfilename)

    ; Globale Links für Download, Variable muss existieren
    Global $sDownloadLink = "https://Blub.de/test/HelperInstaller_"&$line2&".zip?attredirects=0"
    Global $sPath = @TempDir&"\HelperInstaller_"&$line2&".zip"
    Global $sSavePath2 = @TempDir&"\HelperInstaller_"&$line2&"\HelperInstaller.exe"
    Global $s_a_ToZip = @TempDir&"\HelperInstaller_"&$line2&"\"

    [/autoit] [autoit][/autoit] [autoit]

    ; Download des neuen Programmes
    MsgBox(0, "Information", "Beginne Download des Programmes!")
    Local $DownloadFile = InetGet($sDownloadLink,$sPath,1,1)

    [/autoit] [autoit][/autoit] [autoit]

    Do
    Sleep(250)
    Until InetGetInfo($DownloadFile, 2)

    [/autoit] [autoit][/autoit] [autoit]

    ; Überprüfung der Datei
    If FileExists($sPath) Then
    If FileGetSize($sPath) = InetGetSize($sDownloadLink) Then
    Sleep(250)
    ; Entpacken und ausführen
    _BuildInZIP($sPath, $s_a_ToZip, True, 0, True)
    Sleep(10000)
    $sPass = 1
    RunAs("admin", "PC-Server", ""&$PW&"", "0", @ComSpec & " /c start "&$sSavePath2&"", @SystemDir, @SW_HIDE)
    If Sleep(10000) Then
    ;Installation
    ControlClick("Helper for rama Installation: Zielverzeichnis", "", "[ID:1]")
    Sleep(5000)
    ControlClick("Helper for rama Installation: Fertig", "", "[ID:1]")
    If SLeep(500) Then
    ;Variablen
    Local $Split = StringSplit("$line", ",")
    Local $text = "This\nline\ncontains\nC-style breaks."
    Local $array = StringSplit($text, '\n', 1)
    ;Programm starten
    ShellExecute(""&$sSavePath3&"")
    For $Split = 1 To ubound($Split,1)
    Sleep(500)
    ControlClick("Helper for rama", "", "[ID:40248]")
    Sleep(500)
    ControlClick("Account Liste", "", "[ID:40246]")
    Sleep(500)
    ControlClick("Account Liste", "", "[TEXT:$Split[1]]")
    Sleep(500)
    ControlClick("Account Liste", "", "[ID:40245]")
    Sleep(500)
    Next
    ControlClick("Account Liste", "", "[CLASS:32770]")
    Sleep(10000)
    ControlClick("Helper for rama", "", "[CLASS:32770]")
    Sleep(500)
    MsgBox ( 0, "Informationen", "Alle Aufgaben erledigt!")
    Sleep(5000)
    Exit
    Else
    MsgBox(0, "Fehler", "Code:05. Installation fehlgeschlagen!")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    Else
    MsgBox(0, "Fehler", "Code:04. Die Datei "&$sSavePath2&" konnte nicht als Admin ausgeführt werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    Else
    MsgBox(0, "Fehler", "Code:02. Die Datei "&$sPath&" entspricht nicht dieser Datei "&$sDownloadLink&" !")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    Else
    MsgBox(0, "Fehler", "Code:01. Die Datei "&$sPath&" existiert nicht!")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    #EndRegion

    [/autoit]

    5 Mal editiert, zuletzt von KillerKretsche (23. April 2013 um 13:54)

  • Bitte den Spoiler benutzen ;)

    Um Missverständnisse zu vermeiden, mein Name rührt vom Sternenbild und nicht vom Shop her :D


    Rainbow Dash :rock:

    "Das, wobei unsere Berechnungen versagen, nennen wir Zufall." (Albert Einstein)

  • Am Morgen und vom Handy aus würde ich sagen:
    Bei $s_a_ToZip muss am ende ein Backslash "\" um den Pfad abzuschliessen und kein Slash "/"

    Um Missverständnisse zu vermeiden, mein Name rührt vom Sternenbild und nicht vom Shop her :D


    Rainbow Dash :rock:

    "Das, wobei unsere Berechnungen versagen, nennen wir Zufall." (Albert Einstein)

  • Ja hat geklappt thy :D
    Das son alter / so viel bewirken kann :D
    Jetzt kommt der nächste Bug -.-

    [autoit]


    Global $sSavePath2 = @TempDir&"\HelperInstaller_"&$line2&"\HelperInstaller.exe"
    Global $sSavePath3 = "C:\Program Files (x86)\Helper\Helper.exe"
    Global $PW = "PASSWORT"

    [/autoit][autoit][/autoit][autoit]

    RunAs("admin", "PC-Server", ""&$PW&"", "0", @ComSpec & " /c start "&$sSavePath2&"", @SystemDir, @SW_SHOW)

    [/autoit][autoit][/autoit][autoit]

    ShellExecute(""&$sSavePath3&"")

    [/autoit]


    Die Beiden wollen net...

    Und ich frage mich auch wenn man bei Win8 nen Microsoft Konto hat ob das damit überhaupt geht dann sieht es ja so aus:

    [autoit]


    If RunAsWait ("name@mail.com", "MicrosoftAccount", ""&$PW&"", "0", ""&$sSavePath2&"", @SystemDir, @SW_SHOW) Then

    [/autoit]

    Einmal editiert, zuletzt von KillerKretsche (23. April 2013 um 14:59)

  • Schau dir mal RunAs() in der Hilfe an ;)
    Was auf jeden fall falsch ist, du musst die 0 natürlich nicht als String angeben. Also ohne die ""

    Um Missverständnisse zu vermeiden, mein Name rührt vom Sternenbild und nicht vom Shop her :D


    Rainbow Dash :rock:

    "Das, wobei unsere Berechnungen versagen, nennen wir Zufall." (Albert Einstein)

  • Auch anhand der vorherigen Posts solltest du zuerst mal die Hilfe lesen bzw. versuchen deine Probleme alleine zu lösen ;)
    Dabei lernt man auch am besten

    Um Missverständnisse zu vermeiden, mein Name rührt vom Sternenbild und nicht vom Shop her :D


    Rainbow Dash :rock:

    "Das, wobei unsere Berechnungen versagen, nennen wir Zufall." (Albert Einstein)

  • also ich habe jetzt zwei Probleme... Habe schon x verschiedene sachen probiert aber iwie will das nicht @ RunAs und dann habe ich noch das Prob. das meine Controlclicks nicht wollen...
    Dazu muss ich noch sagen, dass ich Win8 habe und jmd. meinte, dass die controlclicks nicht mehr gehen würden in Win8...
    Und dort muss ich noch einbauen, dass er nicht nur 1x Helper.exe beendet sondern alle die er findet

    Aktuelles Gesamtscript [Aktuell mit Run und dann als Admin starten]

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <String.au3>
    #include <File.au3>
    #include <Array.au3>
    ;===============================================================================
    ; Function Name: _BuildInZIP($sPath, $s_a_ToZip, $fUnZip=True, $iIndexBase=1, $fOverwrite=True)
    ; Description: Erstellt aus einer Datei od. einem Array von Dateien eine ZIP-Datei
    ; mit Hilfe der Windows eigenen ZIP-Funktion
    ; Parameter(s): $sPath Pfad der zu erstellenden ZIP-Datei // Bestehenden ZIP-Datei
    ; $s_a_ToZip String der Einzeldatei oder Array der zu zippenden Dateien
    ; // Pfad des Zielordners, in den entpackt werden soll
    ; $fUnZip=True Entpacken=True, Packen=False (Standard)
    ; $iIndexBase Index Basis (erstes Element mit Pfad) des übergebenen Arrays (0 od.1)
    ; $fOverwrite Falls $sPath existiert ==> Überschreiben (Standard=True)
    ; Return Value(s): Erfolg 1
    ; Fehler set @error 1 - Überschreiben aus, aber Zieldatei existiert
    ; 2 - Zieldatei endet nicht auf ".zip"
    ; 3 - zu komprimierende Datei existiert nicht
    ; @extended: Anzahl der fehlenden Dateien
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _BuildInZIP($sPath, $s_a_ToZip, $fUnZip=False, $iIndexBase=1, $fOverwrite=True)
    Local $fh, $sNul = '', $sZIPHeader, $objShell = ObjCreate("Shell.Application"), $objZipOrdner, $err = 0
    $sPath = FileGetLongName($sPath, 1)
    If $fUnZip Then
    Local $temp, $objZip
    If Not FileExists($s_a_ToZip) Then DirCreate($s_a_ToZip)
    $temp = $objShell.Namespace($s_a_ToZip)
    $objZip = $objShell.Namespace($sPath)
    $temp.CopyHere($objZip.Items)
    Return 1
    EndIf
    If (Not $fOverwrite) And FileExists($sPath) Then Return SetError(1,0,0)
    If StringRight($sPath, 4) <> '.zip' Then Return SetError(2,0,0)
    For $i = 1 To 18
    $sNul &= Chr(0)
    Next
    $sZIPHeader = Chr(80) & Chr(75) & Chr(5) & Chr(6) & $sNul
    $fh = FileOpen($sPath, 10)
    FileWrite($fh, $sZIPHeader)
    FileClose($fh)
    $objZipOrdner = $objShell.Namespace($sPath)
    If Not IsArray($s_a_ToZip) Then
    If Not FileExists($s_a_ToZip) Then Return SetError(3,1,0)
    $objZipOrdner.CopyHere($s_a_ToZip)
    Sleep(1000)
    Return 1
    EndIf
    For $i = $iIndexBase To UBound($s_a_ToZip) -1
    If Not FileExists($s_a_ToZip[$i]) Then
    $err += 1
    ContinueLoop
    EndIf
    $objZipOrdner.CopyHere($s_a_ToZip[$i])
    Sleep(1000)
    Next
    If $err Then Return SetError(3,$err,0)
    Return 1
    EndFunc ;==>_BuildInZIP

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Einstellungen
    Global $countoflines = 6
    Global $txtfilename = "HelperUpdate.txt"
    Global $settingsfilename = "HelperUpdate.ini"
    Global $PW = "PASSWORT"
    Global $sSavePath3 = "C:\Program Files (x86)\Helper\Helper.exe"
    Global $weiter = 0

    [/autoit] [autoit][/autoit] [autoit]

    ; Datei öffnen
    Local $read = FileOpen("$txtfilename", 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Prüfen, ob Datei eingelesen wurde
    If $txtfilename = -1 Then
    MsgBox(0, "Fehler", "Das Textdokument "&$txtfilename&" konnte nicht eingelesen werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    ; Textdokument zu Variable
    $line = FileReadLine($txtfilename)
    Local $PID = ProcessExists("Helper.exe") ; Will return the PID or 0 if the process isn't found.
    If $PID Then ProcessClose($PID)

    ; Zeilen Zähler
    Local $CountLines = _FileCountLines("$line")
    If $CountLines > $countoflines Then
    Msgbox(64,"Fehler","Mehr als "&$countoflines&" Zeilen werden nicht unterstützt!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Automatische Überprüfung ob neue Version vorhanden ist
    ; Coming Soon

    [/autoit] [autoit][/autoit] [autoit]

    ;Manuelle Versionsabfrage
    ;Infofenster
    MsgBox ( 0, "Informationen", "In den nachfolgenden Fenster sollten Sie die Version in folgenden Format eingeben: 2_2_0_40")

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GuiOnEventMode',1) ;Schaltet den 'GuiOnEventMode' an
    Opt('OnExitFunc', 'Ende') ;Ruf die Funktion 'Ende' auf, wenn das Programm geschlossen wird

    [/autoit] [autoit][/autoit] [autoit]

    #Region .txt Datei Öffnen
    $File_Handle = FileOpen($settingsfilename, 2) ;Öffnet die Datei
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region GUI Erstellen
    $Form1 = GUICreate('Versionsnummer?', 181, 221, 192, 124) ;Erstellt ein Fenster
    GUISetOnEvent($GUI_EVENT_CLOSE, 'Ende') ;Wenn auf das 'X' geklickt wird, wird die Funktion 'Ende' aufgerufen
    $Edit1 = GUICtrlCreateEdit('', 0, 0, 180, 180) ;Erstellt ein Eingabefeld
    $Button1 = GUICtrlCreateButton('Speichern', 0, 180, 180, 40, $WS_GROUP) ;Erstellt den 'Sperichern' Button
    GUICtrlSetOnEvent(-1, 'Speichern') ;Wenn auf den Button 'Speichern' geklickt wird, wird die Funktion 'Speichern' aufgerufen
    GUISetState(@SW_SHOW) ;Zeigt das GUI
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Endlosschleife ;Sorgt dafür, dass das Programm sich nicht schließt
    While 1
    Sleep(100)
    If $weiter == 1 Then
    ExitLoop
    EndIf
    WEnd
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Funktionen
    Func Speichern()
    FileWrite($File_Handle, GUICtrlRead($Edit1)) ;Überschreibt die Datei mit dem Wert aus dem Eingabefeld
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func Ende()
    FileClose($File_Handle) ;Schließt die Datei. Erst dann sieht man den Inhalt!!!
    Global $weiter = 1
    GUISetState(@SW_HIDE)
    EndFunc
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    ; Datei öffnen
    Local $read = FileOpen("$settingsfilename", 0)

    [/autoit] [autoit][/autoit] [autoit]

    #Region HelperInstaller

    [/autoit] [autoit][/autoit] [autoit]

    ; Prüfen, ob Datei eingelesen wurde
    If $settingsfilename = -1 Then
    MsgBox(0, "Fehler", "Die Datei "&$settingsfilename&" konnte nicht eingelesen werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf

    ; Textdokument zu Variable
    $line2 = FileReadLine($settingsfilename)

    ; Globale Links für Download, Variable muss existieren
    Global $sDownloadLink = "https://Blub.de/HelperInstaller_"&$line2&".zip?attredirects=0"
    Global $sPath = @TempDir&"\HelperInstaller_"&$line2&".zip"
    Global $sSavePath21 = @TempDir&"\HelperInstaller_"&$line2&"\HelperInstaller.exe"
    Global $sSavePath22 = @TempDir&"\HelperInstaller_"&$line2&"\"
    Global $s_a_ToZip = @TempDir&"\HelperInstaller_"&$line2&"\"

    [/autoit] [autoit][/autoit] [autoit]

    ; Download des neuen Programmes
    MsgBox(0, "Information", "Beginne Download des Programmes!")
    Sleep(3000)
    Local $DownloadFile = InetGet($sDownloadLink,$sPath,1,1)

    [/autoit] [autoit][/autoit] [autoit]

    Do
    Sleep(250)
    Until InetGetInfo($DownloadFile, 2)

    [/autoit] [autoit][/autoit] [autoit]

    ; Überprüfung der Datei
    If FileExists($sPath) Then
    If FileGetSize($sPath) = InetGetSize($sDownloadLink) Then
    Sleep(250)
    ; Entpacken und ausführen
    _BuildInZIP($sPath, $s_a_ToZip, True, 0, True)
    Sleep(10000)
    $sPass = 1
    Run($sSavePath21, $sSavePath22, @SW_SHOW)
    If Not @error Then
    ;Installation
    Sleep(2000)
    WinActivate("Helper for rama Installation: Zielverzeichnis")
    Sleep(500)
    ControlClick("Helper for rama Installation: Zielverzeichnis", "", "1", "left")
    Sleep(5000)
    ControlClick("Helper for rama Installation: Fertig", "", "1", "left")
    If SLeep(500) Then
    ;Variablen
    Local $Split = StringSplit("$line", ",")
    Local $text = "This\nline\ncontains\nC-style breaks."
    Local $array = StringSplit($text, '\n', 1)
    ;Programm starten
    ShellExecute (""&$sSavePath3&"")
    For $Split = 1 To ubound($Split,1)
    Sleep(500)
    WinActivate ( "Helper for rama")
    Sleep(2000)
    ControlClick("Helper for rama", "", "40248", "left")
    Sleep(500)
    ControlClick("Account Liste", "", "40246", "left")
    Sleep(500)
    ControlClick("Account Liste", $Split[1]), "", "left"
    Sleep(500)
    ControlClick("Account Liste", "", "40245", "left")
    Sleep(500)
    Next
    Sleep(10000)
    ControlClick("Account Liste", "", "2", "left")
    Sleep(500)
    WinClose("Helper for rama")
    Sleep(500)
    MsgBox ( 0, "Informationen", "Alle Aufgaben erledigt!")
    Sleep(5000)
    Exit
    Else
    MsgBox(0, "Fehler", "Code:05. Installation fehlgeschlagen!")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    Else
    MsgBox(0, "Fehler", "Code:04. Die Datei "&$sSavePath21&" konnte nicht als Admin ausgeführt werden!")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    Else
    MsgBox(0, "Fehler", "Code:02. Die Datei "&$sPath&" entspricht nicht dieser Datei "&$sDownloadLink&" !")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    Else
    MsgBox(0, "Fehler", "Code:01. Die Datei "&$sPath&" existiert nicht!")
    Sleep(5000) ;five seconds
    Exit
    EndIf
    #EndRegion

    [/autoit]