Compile Script Problem & Script Vereinfachen

  • Halli, Hallo alle Leser und Helfer,

    ich habe bis vor 5/6 Tage nicht mal gewusst was Programmieren ist und darum wende ich mich jetzt an Euch. Wie Ihr also mit bekommt "ein absoluter
    Anfänger" ;). Ich bin aber Dank diesem Forum zum sichbaren Erfolg gekommen. :rock:

    Nun zu mein Problem:
    Ich wollte mir ein Automatisierungsscript schreiben, 2 sind es nun geworden(dazu Später mehr). Im ersten Script(exe Datei) startet ein kleines GUI
    mit 2 Buttons. Der erste Button startet das eigentliche Script(exe Datei) und gibt im Layer das Datum und die Startzeit an. Der zweite Button beendet das Script und Rebootet das System. Die beiden Scripte Funktionieren und machen das was sie sollen, ABER sobald ich die Scripte Compile (x64/x86) klappt meine Online Abfrage nicht mehr richtig. Von 10-mal starten klappt es um die 3-4-mal, das ist sehr Ärgerlich.

    Hier ist das Script was das GUI erzeugt:

    Spoiler anzeigen
    [autoit]


    #cs ----------------------------------------------------------------------------
    AutoIt Version: 3.3.8.0
    Author: Muffel van Fingernagel

    Script Function:
    1. Erstellt ein Fenster(GUI)
    2. Erstellt ein Startbutton
    2.1. Startet das eigentliches Script als "exe" Datei
    3. Erstellt ein StopButton
    3.1. Der Button ändert seine Farbe
    3.2. Beendet das Script
    3.3. Reeboot des Systems
    #ce ----------------------------------------------------------------------------
    #include <GUIConstants.au3>

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

    ;######################## GUI Eigenschaften ########################
    GUICreate("Automatisches Rechnen", 350, 50, 500, 5)
    ;==> StartButton Gestalltung
    $StartButton = GUICtrlCreateButton("! S t a r t !", 5, 3, 80)
    GUICtrlSetBkColor($StartButton, 0xffffff)
    GUICtrlSetColor($StartButton, 0xff0000)
    ;==> StoppButton Gestalltung
    $StoppButton = GUICtrlCreateButton("!!_KLICK MICH_!! um das Script zu BEENDEN", 90, 3, 255)
    GUICtrlSetDefColor(0xFF0000)
    GUISetState(@SW_SHOW)
    ;==> GUI schleife
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ProcessClose("autorechnen.exe")
    Exit
    Case $StartButton
    StartScript()
    Case $StoppButton
    StoppScript()
    EndSwitch
    WEnd
    ;######################## Funktionen ########################
    ;==> Startet das Script
    Func StartScript()
    AdlibRegister("Farbwechsel", 888)
    GUICtrlCreateLabel("Script gestartet: " &@MDAY &"." &@MON &"." &@YEAR &" um " &@HOUR &":" &@MIN &":" &@SEC, 70, 33, 250, 20)
    Run("D:\!_Wissenschaft\Scripten\eXe\autorechnen.exe")
    EndFunc
    ;==> Stoppt das Script und System Reboot
    Func StoppScript()
    ;==> (BONIC)Netzwerk aus
    MouseClick("left", 500, 600, 1)
    Sleep(80)
    Send("!{s}")
    Sleep(80)
    Send("{down 8}")
    Sleep(80)
    Send("{enter}")
    Sleep(80)
    ;==> (BONIC)GPU aus
    Send("!{s}")
    Sleep(80)
    Send("{down 5}")
    Sleep(80)
    Send("{enter}")
    Sleep(80)
    ;==> (BONIC)CPU aus
    Send("!{s}")
    Sleep(80)
    Send("{down 2}")
    Sleep(80)
    Send("{enter}")
    Sleep(200)
    ProcessClose("boincmgr.exe")
    Sleep(1000)
    MsgBox(0, "!!_ACHTUNG ACHTUNG_!!", "! Der Rechner startet jetzt NEU !")
    Shutdown (2)
    Exit
    EndFunc
    ;==> Farbwechsel des Button "!!_KLICK MICH_!!..."
    Func Farbwechsel()
    $R = Hex(Random(0, 255, 1), 2)
    $G = Hex(Random(0, 255, 1), 2)
    $B = Hex(Random(0, 255, 1), 2)
    GUICtrlSetBkColor($StoppButton, "0x" & $R & $G & $B)
    EndFunc

    [/autoit]

    Leider bekomme ich das 2te Script nicht eingebaut, wenn ich das einbauen will Funktioniert der "Start" Button nicht mehr. Hier ist auch die Online Abfrage mit eingebaut, die dann nicht mehr richtig Funktioniert, wenn ich das Script Compile.

    Spoiler anzeigen
    [autoit]


    #cs ----------------------------------------------------------------------------
    AutoIt Version: 3.3.8.0
    Author: Muffel van Fingernagel <[email='oopsie@gmx.de'][/email]>

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

    Script Function:
    0. Online Prüfung
    0.1. Offline = Start ab Pkt1
    0.2. Online = Start ab Pkt2
    1. Starte den Congstar Manager
    1.1. öffne eine Internetverbindung
    1.2. Minimiere das Fenster
    2. Starte den TThrottle
    3. Starte BONIC Manager
    3.1. Netzwerk erlauben
    3.2. GPU Einschalten
    3.3. CPU Einschalten
    3.4. Einzelne Projektanfragen in einer Schleife, alle 5min
    #ce ----------------------------------------------------------------------------
    Sleep(1000)
    ;==> Online Prüfung
    $ping = Ping("www.google.de", 250)
    If $ping Then
    Onlinecheck ()
    Else
    ;Msgbox(0,"Status","Nicht ONLINE")
    ;######################## Startet Congstar Internet Manager ########################
    Send("{LWin}")
    Sleep(100)
    Send("{up 2}")
    Sleep(100)
    Send("{enter}")
    Sleep(5000)
    Send("{enter}")
    WinWaitActive("congstar Internet-Manager")
    Sleep(3000)
    ;MouseClick("left",825,406,1)
    MouseMove(800,200)
    Sleep(9000)
    WinSetState("congstar Internet-Manager", "", @SW_MINIMIZE)
    Sleep(1000)
    ;######################## Startet TThrottle ########################
    Run("D:\!_Wissenschaft\TThrottle\TThrottle64.exe")
    Sleep(8000)
    ;######################## Startet BONIC Manager ########################
    Run("D:\!_Wissenschaft\BONIC\boincmgr.exe")
    WinWaitActive("BOINC Manager")
    Sleep(3000)
    ;==> Netzwerk an
    Send("!{s}")
    Sleep(80)
    Send("{down 6}")
    Sleep(80)
    Send("{enter}")
    Sleep(80)
    ;==> GPU an
    Send("!{s}")
    Sleep(80)
    Send("{down 3}")
    Sleep(80)
    Send("{enter}")
    Sleep(80)
    ;==> CPU an
    Send("!{s}")
    Sleep(80)
    Send("{enter}")
    Sleep(80)
    ;######################## Projekt Anfragen (Schleife) ########################
    While True
    MouseClick("left", 152, 190, 1) ;Reiter Projekte
    Sleep(80)
    MouseClick("left", 300, 236, 3) ;Projekt 1
    Sleep(80)
    MouseClick("left", 100, 256, 1) ;Aktualisiert Projekt 1
    Sleep(80)
    MouseClick("left", 300, 254, 3) ;Projekt 2
    Sleep(80)
    MouseClick("left", 100, 256, 1) ;Aktualisiert Projekt 2
    Sleep(80)
    MouseClick("left", 300, 271, 3) ;Projekt 3
    Sleep(80)
    MouseClick("left", 100, 256, 1) ;Aktualisiert Projekt 3
    Sleep(80)
    MouseClick("left", 300, 287, 3) ;Projekt 4
    Sleep(80)
    MouseClick("left", 100, 256, 1) ;Aktualisiert Projekt 4
    Sleep(80)
    MouseMove(500,600)
    Sleep(600000)
    WEnd
    EndIf

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

    Func Onlinecheck ()
    ;MsgBox(0,"Status","ONLINE")
    Sleep(1000)
    ;######################## Startet TThrottle ########################
    Run("D:\!_Wissenschaft\TThrottle\TThrottle64.exe")
    Sleep(8000)
    ;######################## Startet BONIC Manager ########################
    Run("D:\!_Wissenschaft\BONIC\boincmgr.exe")
    WinWaitActive("BOINC Manager")
    Sleep(10000)
    ;==> Netzwerk an
    Send("!{s}")
    Sleep(80)
    Send("{down 6}")
    Sleep(80)
    Send("{enter}")
    Sleep(80)
    ;==> GPU an
    Send("!{s}")
    Sleep(80)
    Send("{down 3}")
    Sleep(80)
    Send("{enter}")
    Sleep(80)
    ;==> CPU an
    Send("!{s}")
    Sleep(80)
    Send("{enter}")
    Sleep(80)
    ;######################## Projekt Anfragen (Schleife) ########################
    While True
    MouseClick("left", 152, 190, 1) ;Reiter Projekte
    Sleep(80)
    MouseClick("left", 300, 236, 3) ;Projekt 1
    Sleep(80)
    MouseClick("left", 100, 256, 1) ;Aktualisiert Projekt 1
    Sleep(80)
    MouseClick("left", 300, 254, 3) ;Projekt 2
    Sleep(80)
    MouseClick("left", 100, 256, 1) ;Aktualisiert Projekt 2
    Sleep(80)
    MouseClick("left", 300, 271, 3) ;Projekt 3
    Sleep(80)
    MouseClick("left", 100, 256, 1) ;Aktualisiert Projekt 3
    Sleep(80)
    MouseClick("left", 300, 287, 3) ;Projekt 4
    Sleep(80)
    MouseClick("left", 100, 256, 1) ;Aktualisiert Projekt 4
    Sleep(80)
    MouseMove(500,600)
    Sleep(600000)
    WEnd
    EndFunc

    [/autoit]

    Im 2ten Script ist eine Schleife eingebaut die sich alle 6 min. Wiederholt. Meine Frage dazu. Wie setze ich das um das sich ein Counter im GUI Menu unter der Anzeige, wann es gestartet wurde, angezeigt wird. Er soll nur Optisch machen wann sich die Maus wieder bewegt. Ich möchte nochmals Betonen das ich ein Anfänger bin und ich das bis jetzt nicht besser umgesetzt bekomme. Ich möchte eigentlich so wenig wie möglich Maus Klicks machen, aber das ist nicht so einfach, ich scheitere schon im Programm ein Reiter zu wechseln:D, aber jeder fängt mal an.

    Ich bedanke mich schon im Voraus für Eure Hilfen.
    mfg

  • ich scheitere schon im Programm ein Reiter zu wechseln

    was ist das denn für ein programm? :)

    Wie setze ich das um das sich ein Counter im GUI Menu unter der Anzeige, wann es gestartet wurde, angezeigt wird. Er soll nur Optisch machen wann sich die Maus wieder bewegt.

    was für ein counter soll das denn sein? was zählt der counter denn? :)
    oder wie soll ich das verstehen? :)

  • Zitat

    was ist das denn für ein programm? :)

    Das nennt sich BOINC Manager(Berkeley Open Infrastructure for Network Computing), ich gebe meine freien Rechner Ressourcen an die Wissenschaft für verschiedene Projekt.
    Am besten schauste mal hier https://autoit.de/www.seti-germany.de/wiki/Hauptseite , da ist alles sehr schön erklärt....

    was für ein counter soll das denn sein? was zählt der counter denn? :)
    oder wie soll ich das verstehen? :)

    Wie oben beschrieben, habe ich im 2ten Script eine Endlosschleife die sich alle 5min Wiederholt(6min. sind gerade eingestellt zum Testen) und die Zeit will ich haben, sobald die schleife gestartet ist soll der Countdown losgehen und wenn die Schleife wieder Anfängt(nach 5min.), soll der Counter wieder von vorne beginnen. damit ich weis wie lange es noch ist bis die schleifen anfängt. Ich hoffe jetzt ist es Verständlicher mit dem Counter.

    [EDIT]
    Counter gelöst!

    Mit dem Counter habe ich nun hinbekommen, dass wenn die Schleife durchgelaufen ist mir Anzeigt wird wie lange es dauert bis die Schleife wieder
    Anfängt. Optisch auf GUI. :rock: Ich habe es leider nicht anders geschafft außer das ich das mit dem Start Button Verknüpfen. Naja Hauptsache es läuft erst mal so.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    ;######################## GUI Eigenschaften ########################
    GUICreate("Automatisches Rechnen", 350, 80, 500, 5)
    ;==> StartButton Gestalltung
    $StartButton = GUICtrlCreateButton("! S t a r t !", 5, 3, 80)
    GUICtrlSetBkColor($StartButton, 0xffffff)
    GUICtrlSetColor($StartButton, 0xff0000)
    ;==> StoppButton Gestalltung
    $StoppButton = GUICtrlCreateButton("!!_KLICK MICH_!! um das Script zu BEENDEN", 90, 3, 255)
    GUICtrlSetDefColor(0xFF0000)
    ;==> Counter Anzeige für die Mausbewegung
    GUICtrlCreateLabel("Maus bewegt sich in: ", 80, 52, 100, 17)
    $min = GUICtrlCreateLabel("0", 188, 52, 12, 17) ;<---- startzeit für minuten
    GUICtrlCreateLabel(":", 200, 52, 5, 17)
    $sec = GUICtrlCreateLabel("11", 205, 52, 12, 17) ;<---- startzeit für sekunden
    GUICtrlCreateLabel("min", 220, 52, 15, 17)
    GUISetState(@SW_SHOW)
    ;==> GUI schleife
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ProcessClose("autorechnen.exe")
    Exit
    Case $StartButton
    StartScript()
    Case $StoppButton
    StoppScript()
    EndSwitch
    WEnd

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

    ;######################## Funktionen ########################
    ;==> Startet das Script
    Func StartScript()
    ;Run("D:\!_Wissenschaft\Scripten\eXe\autorechnen.exe")
    ;==> Blinkender Stopp Button
    AdlibRegister("Farbwechsel", 888)
    ;==> Wann das Script gestartet wurde
    GUICtrlCreateLabel("Script gestartet: " &@MDAY &"." &@MON &"." &@YEAR &" um " &@HOUR &":" &@MIN &":" &@SEC, 70, 33, 250, 20)
    ;==> Counter für die Mausbewegung
    AdlibRegister("tick", 1000)
    AdlibRegister("count", 1000)
    EndFunc
    ;==> Stoppt das Script und System Reboot
    Func StoppScript()
    ;==> (BONIC)Netzwerk aus
    MouseClick("left", 500, 600, 1)
    Send("!{s}")
    Send("{down 8}")
    Send("{enter}")
    ;==> (BONIC)GPU aus
    Send("!{s}")
    Send("{down 5}")
    Send("{enter}")
    ;==> (BONIC)CPU aus
    Send("!{s}")
    Send("{down 2}")
    Send("{enter}")
    Sleep(1000)
    ProcessClose("boincmgr.exe")
    Sleep(1000)
    MsgBox(0, "!!_ACHTUNG ACHTUNG_!!", "! Der Rechner startet jetzt NEU !")
    Shutdown (2)
    Exit
    EndFunc
    ;==> Farbwechsel des Button "!!_KLICK MICH_!!..."
    Func Farbwechsel()
    $R = Hex(Random(0, 255, 1), 2)
    $G = Hex(Random(0, 255, 1), 2)
    $B = Hex(Random(0, 255, 1), 2)
    GUICtrlSetBkColor($StoppButton, "0x" & $R & $G & $B)
    EndFunc
    ;==> Counter für Mausbewegung
    Func count()
    If GUICtrlRead($sec) = "0" And GUICtrlRead($min) = "0" Then
    GUICtrlSetData($sec, "0")
    GUICtrlSetData($min, "5")
    Else
    EndIf
    If GUICtrlRead($sec) = "0" Then
    GUICtrlSetData($sec, "59")
    If GUICtrlRead($min) = "0" Then
    GUICtrlSetData($min, "59")
    Else
    GUICtrlSetData($min, GUICtrlRead($min) - 1)
    EndIf
    Else
    GUICtrlSetData($sec, GUICtrlRead($sec) - 1)
    EndIf
    EndFunc

    [/autoit]


    Compile Script Problem noch offen....
    Ich habe immer noch das Problem, wenn ich das Script Compile (x86/x64) Funktioniert meine Online Abfrage nicht mehr. Hat dazu einer eine Lösung?
    [EDIT ENDE]

    Mfg

    Einmal editiert, zuletzt von Muffel (9. September 2012 um 11:26)

  • Hat keiner eine Idee mit dem Compile, warum dann die Online Abfrage nicht mehr Funktioniert?? Des weiteren habe ich Probleme mit dem Counter, der läuft nicht genau.

    Ich würde mich freuen, wenn ich paar Hilfestellung bekommen könnte in den Angelegenheiten. Ich komme einfach nicht mehr weiter.

    Gebt Anfänger eine Chance ;)

    Danke