Resoursenfresser

  • ja^^ sowas habe ich programmiert^^

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    #include <GUIConstants.au3>
    #include <GuiEdit.au3>
    #include <GuiStatusBar.au3>
    #include <GUIConstantsEx.au3>
    #include <windowsconstants.au3>
    #include <GUIConstants.au3>
    #include <Date.au3>
    #include <file.au3>
    #include <_LOG.au3>
    #include <Inet.au3>
    #include <Array.au3>

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

    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=c:\users\matthias\desktop\battlefront ii global banlist\form1.kxf
    $Form1 = GUICreate("", 771, 556, 186, 124)
    $Edit1 = GUICtrlCreateEdit("", 336, 0, 433, 553)
    GUICtrlSetData(-1, "Edit1")
    $Label1 = GUICtrlCreateLabel("Server Aktivierungszeit : ", 8, 488, 121, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Log_Putzen = GUICtrlCreateButton("Log Fenster Putzen", 216, 520, 115, 25, 0)
    ;GUICtrlSetOnEvent(-1, "Button_3Click")!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    $Start = GUICtrlCreateButton("Server Starten", 8, 520, 99, 25, 0)
    GUICtrlSetOnEvent(-1, "Button_1Click")
    $Stop = GUICtrlCreateButton("Server Abschalten", 112, 520, 99, 25, 0)
    GUICtrlSetOnEvent(-1, "Button_2Click")
    $Server_status = GUICtrlCreateLabel("Deaktiviert", 88, 8, 55, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("Server Status : ", 8, 8, 77, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label4 = GUICtrlCreateLabel("-----------------------------------------------------------------", 128, 488, 199, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Pic1 = GUICtrlCreatePic("C:\Users\Matthias\Desktop\Battlefront II Global Banlist\Server_Data\Bilder\gruen_aus.jpg", 248, 8, 17, 17, 0)
    $Pic2 = GUICtrlCreatePic("C:\Users\Matthias\Desktop\Battlefront II Global Banlist\Server_Data\Bilder\rot_an.jpg", 280, 8, 17, 17, 0)
    $Label2 = GUICtrlCreateLabel("Datum :", 32, 32, 41, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label5 = GUICtrlCreateLabel("-----------------------------------------------------------------", 80, 32, 199, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label6 = GUICtrlCreateLabel("Uhrzeit : ", 32, 48, 46, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label7 = GUICtrlCreateLabel("-----------------------------------------------------------------", 80, 48, 199, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label8 = GUICtrlCreateLabel("System IP :", 16, 80, 57, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label9 = GUICtrlCreateLabel("-----------------------------------------------------------------", 80, 80, 199, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label10 = GUICtrlCreateLabel("Netzwerk IP :", 8, 96, 68, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label11 = GUICtrlCreateLabel("-----------------------------------------------------------------", 80, 96, 199, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label12 = GUICtrlCreateLabel("Internet IP :", 16, 112, 59, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label13 = GUICtrlCreateLabel("-----------------------------------------------------------------", 80, 112, 199, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label14 = GUICtrlCreateLabel("Letzter Ban :", 32, 176, 64, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label15 = GUICtrlCreateLabel("-----------------------------------------------------------------", 104, 176, 199, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label16 = GUICtrlCreateLabel("Gebant von User :", 8, 192, 91, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label17 = GUICtrlCreateLabel("-----------------------------------------------------------------", 104, 192, 199, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label18 = GUICtrlCreateLabel("Grund :", 56, 208, 39, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label19 = GUICtrlCreateLabel("-----------------------------------------------------------------", 104, 208, 199, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label20 = GUICtrlCreateLabel("Deaktiviert", 120, 264, 55, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label21 = GUICtrlCreateLabel("Pings zu : ", 16, 264, 56, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Pic3 = GUICtrlCreatePic("Server_Data\Bilder\gruen_aus.jpg", 256, 264, 17, 17, 0)
    $Pic4 = GUICtrlCreatePic("Server_Data\Bilder\rot_an.jpg", 288, 264, 17, 17, 0)
    $Label22 = GUICtrlCreateLabel("Deaktiviert", 120, 288, 55, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label23 = GUICtrlCreateLabel("Pings zu : ", 16, 288, 56, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Pic5 = GUICtrlCreatePic("Server_Data\Bilder\gruen_aus.jpg", 256, 288, 17, 17, 0)
    $Pic6 = GUICtrlCreatePic("Server_Data\Bilder\rot_an.jpg", 288, 288, 17, 17, 0)
    $Label24 = GUICtrlCreateLabel("Deaktiviert", 120, 312, 55, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label25 = GUICtrlCreateLabel("Pings zu : ", 16, 312, 56, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Pic7 = GUICtrlCreatePic("Server_Data\Bilder\gruen_aus.jpg", 256, 312, 17, 17, 0)
    $Pic8 = GUICtrlCreatePic("Server_Data\Bilder\rot_an.jpg", 288, 312, 17, 17, 0)
    $Label26 = GUICtrlCreateLabel("Deaktiviert", 120, 336, 55, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label27 = GUICtrlCreateLabel("Pings zu : ", 16, 336, 56, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Pic9 = GUICtrlCreatePic("Server_Data\Bilder\gruen_aus.jpg", 256, 336, 17, 17, 0)
    $Pic10 = GUICtrlCreatePic("Server_Data\Bilder\rot_an.jpg", 288, 336, 17, 17, 0)
    $Label28 = GUICtrlCreateLabel("Deaktiviert", 120, 360, 55, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label29 = GUICtrlCreateLabel("Pings zu : ", 16, 360, 56, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Pic11 = GUICtrlCreatePic("Server_Data\Bilder\gruen_aus.jpg", 256, 360, 17, 17, 0)
    $Pic12 = GUICtrlCreatePic("Server_Data\Bilder\rot_an.jpg", 288, 360, 17, 17, 0)
    $Label30 = GUICtrlCreateLabel("Deaktiviert", 120, 384, 55, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label31 = GUICtrlCreateLabel("Pings zu : ", 16, 384, 56, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Pic13 = GUICtrlCreatePic("Server_Data\Bilder\gruen_aus.jpg", 256, 384, 17, 17, 0)
    $Pic14 = GUICtrlCreatePic("Server_Data\Bilder\rot_an.jpg", 288, 384, 17, 17, 0)
    $Label32 = GUICtrlCreateLabel("Deaktiviert", 120, 408, 55, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label33 = GUICtrlCreateLabel("Pings zu : ", 16, 408, 56, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Pic15 = GUICtrlCreatePic("Server_Data\Bilder\gruen_aus.jpg", 256, 408, 17, 17, 0)
    $Pic16 = GUICtrlCreatePic("Server_Data\Bilder\rot_an.jpg", 288, 408, 17, 17, 0)
    $Label34 = GUICtrlCreateLabel("Deaktiviert", 120, 432, 55, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Label35 = GUICtrlCreateLabel("Pings zu : ", 16, 432, 56, 17)
    GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
    $Pic17 = GUICtrlCreatePic("Server_Data\Bilder\gruen_aus.jpg", 256, 432, 17, 17, 0)
    $Pic18 = GUICtrlCreatePic("Server_Data\Bilder\rot_an.jpg", 288, 432, 17, 17, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    AdlibEnable("Timer",1000)

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

    Global $Start_Server = False
    Global $Stop_Server = False
    Global $Start_Gesamt_Timer = "0"
    Global $Day = "0"
    Global $Hour, $Mins, $Secs, $sTime, $Time ,$Systemadresse ,$Uhrzeit ,$Datum
    Global $Inet_IP_Aktual = 1
    Func Button_1Click()
    $Start_Server = True
    EndFunc

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

    Func Button_2Click()
    $Stop_Server = True
    EndFunc

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

    While 1
    If $Start_Server = True Then
    Global $timer = TimerInit()
    GUICtrlSetImage ( $Pic1,"Server_Data\Bilder\gruen_an.jpg")
    GUICtrlSetData ( $Server_status, "Aktiviert")
    GUICtrlSetImage ( $Pic2,"Server_Data\Bilder\rot_aus.jpg")
    $Start_Gesamt_Timer = "1"
    $Start_Server = False
    EndIf

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

    If $Stop_Server = True Then
    GUICtrlSetImage ( $Pic1,"Server_Data\Bilder\gruen_aus.jpg")
    GUICtrlSetData ( $Server_status, "Deaktiviert")
    GUICtrlSetImage ( $Pic2,"Server_Data\Bilder\rot_an.jpg")
    $Start_Gesamt_Timer = "0"
    $Stop_Server = False
    EndIf
    WEnd

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

    ; --------------------------Timer()-----------------------------------
    Func Timer()
    $1 = ("1")
    If $Start_Gesamt_Timer = $1 Then
    _TicksToTime(Int(TimerDiff($timer)), $Hour, $Mins, $Secs )
    If $Hour = 23 And $Mins = 59 and $Secs = 59 Then
    $Day = $Day + 1
    EndIf
    If $Day >= 1 Then
    $Hour = $Hour - (24*$Day)
    EndIf
    Local $sTime = $Time ; save current time to be able to test and avoid flicker..
    $Time = StringFormat("%s Tage. %01i Std. %01i Min. %01i Sek.",$Day, $Hour, $Mins, $Secs)
    If $sTime <> $Time then ControlSetText($Form1, "", $Label4 , $Time)
    Else
    $Day = "0"
    EndIf

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

    $Uhrzeit = StringFormat("%s:%s:%s",@HOUR ,@MIN ,@SEC)
    ControlSetText($Form1, "", $Label7 , $Uhrzeit)

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

    $Datum = StringFormat("%s.%s.%s",@MDAY ,@MON ,@YEAR)
    ControlSetText($Form1, "", $Label5 , $Datum)

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

    $Systemadresse1 = @IPAddress1
    ControlSetText($Form1, "", $Label9 , $Systemadresse1)
    ControlSetText($Form1, "", $Label11 , $Systemadresse1)

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

    If @SEC = 00 or $Inet_IP_Aktual = 1 Then
    $Intenet_IP = _GetIP ( )
    $Inet_IP_Aktual = 0
    ControlSetText($Form1, "", $Label13 , $Intenet_IP)
    EndIf

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

    EndFunc

    [/autoit]

    Also ich will den teimer, die Uhr und den ip aktuallisierer am laufen halt aber ohne so extrem viele resoursen zu fressen gibt es da ne möglichkeit?

    Edit Oscar: Spoiler gesetzt!

    Einmal editiert, zuletzt von Oscar (16. April 2009 um 17:52)

  • Zitat

    #include <_LOG.au3>


    Wenn du UDFs verwendest, die nicht bei der Installation von Autoit nicht dabei sind, poste dies bitte, damit ich das Script auch testen kann.
    Bitte verwende das nächste mal einen Spoiler

    Code
    [spoiler][autoit] Dein Code [/autoit][/spoiler]

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)

  • Sleep heißt schlafen(Das passt, das Programm "schläft" auch, wennn dieser Code drinnen ist!)
    Ich weiß ja nicht was du meinst, aber ob in der Schleife nur 1 Zeile oder 468453 Stehen, das ist egal.
    zB

    [autoit]

    While 1
    ;... Code.....
    Sleep(100) ;Hier schläft das Programm für 0.1 Sec.
    Wend

    [/autoit]

    Edit:/ Ach ja, @Matthias_199: Ist das ein Chat-Programm? Mich würde der Client interessieren!

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)

    • Offizieller Beitrag

    Beim MessageLoop-Mode sorgt bereits GUIGetMsg für eine geringe CPU-Last. Dort ist der Sleep-Befehl nicht nötig.

    Wenn Du aber den OnEvent-Mode benutzt, wird die Endlosschleife endlos durchlaufen (wie der Name schon sagt) und das einzige, was der Prozessor in Deiner While...WEnd-Schleife zu tun hat, sind zwei If-Abfragen zu bearbeiten. Ohne ein Sleep in der Schleife führt das zu 100% Prozessorlast (50% bzw. entsprechend weniger bei Dual- bzw. MultiProzessor-Systemen).

  • Wein wenn nix getan wird, auch keine CPU verbraucht wird!
    Wenn du schläfst, brauchst du etwa gleich viel Energie wie wenn du etwas (zB Sporteln) machst???

    MfG. tobi_girst

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »tobi_girst« (Morgen, 25:63)

  • ich denke im eigentlichen Sinne senkt sleep die CPU-Last nicht, da die CPU-Last in Summe immer 100% ist und sein muß.
    Das hat mit derArchitektur der CPU zu tun.
    Heißt: die CPU ist immer "am etwas machen ..."

    Sleep übergibt nur die erhalte Rechenzeit wieder zurück an den Leerlaufprozess,
    der dafür zuständig ist, die Rechenleistung zu verteilen an die einzelnen Thread & Prozesse ( siehe TaskManager).

    Heißt wenn Dein Programm 100% der Rechenleistung beansprucht und auch bekommt, dann ist der "Zuteilungsprozess" außen vor.
    Da Dein Programm keinerlei Routine im Verteilen von CPU-Leistung besitzt, "verhungern " die anderen Prozesse.
    Damit "hängt" Dein System.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Das andauernde durchlaufen der Mainschleife sorgt dafür, dass der Prozessor ständig mit rechnen beschäftigt ist.
    Dein Tool ist mit Sicherheit nicht das einzigste ist was läuft. Selbst schnelle Rechner kommen damit nicht klar. Eine CPU kann immer nur einen Rechenvorgang gleichzeitig bearbeiten d.h. alle Operationen laufen hintereinander ab (auch bei Multithreading).

    Ein sleep() gibt dem Rechner quasi Luft zum atmen :)

    EDIT: Siehe Schnuffel

  • Log.au3 wirdaber eigendlich NOCh nicht benutz also hättest se getrost weglassen können^^

    [autoit]

    #include-once
    #include <file.au3>
    Func _LOG($file = "", $text = "")
    $Datum_Zeit = StringFormat("[DATUM: %s.%s.%s ZEIT: %sh %smin %ssec] -- ",@MDAY ,@MON ,@YEAR ,@Hour ,@Min ,@Sec)
    FileOpen($file,1)
    FileWriteLine($file, "" & $Datum_Zeit & $text)
    FileClose($file)
    EndFunc

    [/autoit]

    ah ja aber mein prob ist ja das ich es mit ne funktion und AdlibEnable gelöst habe........
    gibt es dafür vlt einen besseren ansatz?

  • bau doch einfach wie gesagt einen sleep(1) ein:

    Spoiler anzeigen
    [autoit]

    While 1
    If $Start_Server = True Then
    Global $timer = TimerInit()
    GUICtrlSetImage ( $Pic1,"Server_Data\Bilder\gruen_an.jpg")
    GUICtrlSetData ( $Server_status, "Aktiviert")
    GUICtrlSetImage ( $Pic2,"Server_Data\Bilder\rot_aus.jpg")
    $Start_Gesamt_Timer = "1"
    $Start_Server = False
    EndIf

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

    If $Stop_Server = True Then
    GUICtrlSetImage ( $Pic1,"Server_Data\Bilder\gruen_aus.jpg")
    GUICtrlSetData ( $Server_status, "Deaktiviert")
    GUICtrlSetImage ( $Pic2,"Server_Data\Bilder\rot_an.jpg")
    $Start_Gesamt_Timer = "0"
    $Stop_Server = False
    EndIf
    sleep(1)
    WEnd

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Hast Du denn die Empfehlung sleep() zu benutzen schon getestet?
    Schon ein sleep(100) ergibt bei mir 0-1% Gesamtlast.

  • ja hab ich getestet......

    lol ok dan sttimt was anders bei mir net vista......

    EDIT: Sory ja pastt 0-1 % stimmt volkommen ok thx.... falsch nachgeschaut^^

  • THX

    aber sagst du mir auch was die dran gefällt?

    oder siehst sie einfach nur gut aus?^^^^