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. ![]()
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
#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>
;######################## 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
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
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.0
Author: Muffel van Fingernagel <[email='oopsie@gmx.de'][/email]>
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
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
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