While Schleifen Problem

12/29/2010 21:38 PenGuin :O#16
Ja was willst du auch immer mit deinem Sleep?
12/29/2010 22:25 freehuntx#17
Hast du den Sinn von Delay verstanden?

Es steht dafür, z.B. alle 30 Minuten die Ip zu ändern.

Wie soll es deiner meinung nach ohne Sleep funktionieren...

Die Uhrzeit Auslesen, und irgendwie mit einer matheformel immer die uhrzeit des nächsten changes ausrechnen, und quasi einen wecker basteln?

Kp :P
12/29/2010 23:18 PenGuin :O#18
Code:
;PenGuin :O

Global $hGUI, $Start, $Count, $State, $Counter, $Stop
Global $i = 1

$hGUI = GUICreate("Einfaches Beispiel", 299, 120, 446, 327)
GUISetFont(11, 400, 0, "Arial")
$Start = GUICtrlCreateButton("Start", 24, 48, 113, 25)
$Count = GUICtrlCreateButton("Erhöhen", 160, 48, 113, 25)
$Stop = GUICtrlCreateButton("Stop", 92, 80, 113, 25)
GUICtrlSetstate($Stop, 128)
$State = GUICtrlCreateLabel("Aus", 66, 16, 47, 21)
$Counter = GUICtrlCreateLabel("1", 205, 16, 47, 21)
GUISetState()

While True
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $Start
			_Start()
		Case $Count
			_Count()
		Case $Stop
			_Stop()
	EndSwitch
WEnd

Func _Count()
	$i += 1
	GUICtrlSetData($Counter, $i)
EndFunc

Func _Start()
	GUICtrlSetstate($Start, 128)
	GUICtrlSetstate($Stop, 64)
	GUICtrlSetData($State, "Ein")
	AdlibRegister("_MsgBox", 5000)
EndFunc

Func _MsgBox()
	ConsoleWrite("5 Sekunden vergangen, und du konntest trotzdem noch den anderen Button benutzen!" & @CRLF)
EndFunc

Func _Stop()
	GUICtrlSetData($State, "Aus")
	GUICtrlSetstate($Stop, 128)
	GUICtrlSetstate($Start, 64)
	AdlibUnRegister("_MsgBox")
EndFunc
Ach ja, und nenn mir einen Grund, warum ich dir noch weiter helfen sollte, wenn du mir schon so patzig ankommst.
12/29/2010 23:43 freehuntx#19
Es gibt Leute die Kritikfähig sind, und andere die es nicht sind.
Ich wusste ja nicht dass man Leute, die einem Helfen wollen, anlügen soll und sagen dass ihr Post geholfen hat.

Wenn du verstehst was ich meine.

Naja ich zwinge dich nicht mir zu helfen es bleibt dir überlassen...
12/30/2010 00:25 PenGuin :O#20
Quote:
Originally Posted by freehuntx View Post
Es gibt Leute die Kritikfähig sind, und andere die es nicht sind.
Ich wusste ja nicht dass man Leute, die einem Helfen wollen, anlügen soll und sagen dass ihr Post geholfen hat.

Wenn du verstehst was ich meine.

Naja ich zwinge dich nicht mir zu helfen es bleibt dir überlassen...
Ich rate dir dringend den Unterschied von Kritifähigkeit und Unfreundlichkeit zu lernen.
Du muss mir nicht sagen, dass mein Post hilfreich war, wenn er es nicht war, dann sagst du was ich falsch verstanden hab und fertig, weil ich bin 100%ig sicher, dass deine Problemchen (die sind so gering) mich wohl schlecht an die Grenzen treiben, d.h. einfach nochmal neu erklären, bzw. das was ich anscheinend falsch verstanden habe und fertig.

Natürlich zwingst du mich nicht, dennoch ist das kein Grund, auf eine falsche Hilfestellung patzig zu antworten, oder nicht?

Außerdem, hat das neue Script dir geholfen?
12/30/2010 00:46 KDeluxe#21
Quote:
Originally Posted by freehuntx View Post
Mal so am Rande.

Dein Script ändert sofort nach drücken des buttons die ip, aber er soll ja immer nach einer bestimmten zeit die ip ändern.
Wenn ich bei etwas eine Zeitspanne angebe und anschließend davon Gebrauch
mache, gehe ich davon aus, dass es sich auch beim starten bemerkbar macht.

Außerdem genügt es eine Zeile auszukommentieren. Was ist daran schwer?

Code:
#include <INet.au3> 
#include <GUIConstantsEx.au3> 

#Region ### START Koda GUI section ### Form= 
GUICreate("FR!TZBox IP Changer by FreehuntX", 360, 155) 
GUICtrlCreateGroup("Simple Changer", 8, 0, 153, 57) 
$B_Change = GUICtrlCreateButton("Change", 16, 24, 75, 25) 
GUICtrlCreateLabel("or    Num1", 96, 32, 53, 17) 
GUICtrlCreateGroup("", -99, -99, 1, 1) 
GUICtrlCreateLabel("Current IP:", 8, 72, 54, 17) 
$L_IP = GUICtrlCreateLabel("Please Wait", 64, 72, 101, 17) 
GUICtrlCreateGroup("Status", 8, 96, 153, 49) 
$L_Status = GUICtrlCreateLabel("Nothing...", 20, 120, 140, 17) 
GUICtrlCreateGroup("", -99, -99, 1, 1) 
GUICtrlCreateGroup("Time Changer", 168, 0, 185, 145) 
$I_Delay = GUICtrlCreateInput("1800", 224, 22, 113, 21) 
GUICtrlCreateLabel("Delay:", 176, 24, 34, 17) 
$B_Start = GUICtrlCreateButton("Start", 176, 56, 75, 25) 
$B_Stop = GUICtrlCreateButton("Stop", 264, 56, 75, 25) 
GUICtrlCreateGroup("", -99, -99, 1, 1) 
GUICtrlCreateGroup("Status", 176, 88, 169, 49) 
$L_StatusT = GUICtrlCreateLabel("Nothing...", 190, 112, 145, 17) 
GUICtrlCreateGroup("", -99, -99, 1, 1) 
GUISetState(@SW_SHOW) 
#EndRegion ### END Koda GUI section ### 
GUICtrlSetState($B_Stop, $GUI_DISABLE) 
GUICtrlSetdata($L_IP, _GetIp()) 

Global $Start, $AutoChange = False 
Global $Timer, $Hotkey = True 
HotKeySet("{NUMPAD1}", "_ChangeH") 

While Sleep(10) 
    $nMsg = GUIGetMsg() 
    Switch $nMsg 
        Case $GUI_EVENT_CLOSE 
            Exit 
        Case $B_Change 
            _Change() 
        Case $B_Start 
            GUICtrlSetState($B_Start, $GUI_DISABLE) 
            GUICtrlSetState($B_Stop, $GUI_ENABLE) 
            $AutoChange = True 
            $Start = True 
        Case $B_Stop 
            GUICtrlSetState($B_Start, $GUI_ENABLE) 
            GUICtrlSetState($B_Stop, $GUI_DISABLE) 
            $AutoChange = False 
            $Timer = 0 
    EndSwitch 

    If $AutoChange Then 
        If $Start Then 
            [SIZE="6"][COLOR="Green"];_Change($L_StatusT)[/COLOR][/SIZE] 
            $Timer = TimerInit() 
            $Start = False 
        EndIf 

        If TimerDiff($Timer) >= (GUICtrlRead($I_Delay) * 1000) Then 
            _Change($L_StatusT) 
            $Timer = TimerInit() 
        EndIf 
    EndIf 
WEnd 

Func _ChangeH() 
    If $Hotkey Then 
        $Hotkey = False 
        _Change() 
    EndIf 
EndFunc 

Func _Change($Label = $L_Status) 
    If $Label == $L_Status Then GUICtrlSetState($B_Change, $GUI_DISABLE) 

    GUICtrlSetdata($Label,"Changing...") 
    RunWait(@ComSpec & " /c " & 'type data.box | "' & @ScriptDir & '\nc.exe" -w 1 fritz.box 49000 >nul', "", @SW_HIDE) 
    GUICtrlSetdata($L_IP, _GetIp()) 
    GUICtrlSetdata($Label, "Last Change: " & @HOUR & ":" & @MIN & ":" & @SEC) 

    If $Label == $L_Status Then GUICtrlSetState($B_Change, $GUI_ENABLE) 
    If $Hotkey == False Then $Hotkey = True 
EndFunc
Quote:
Originally Posted by freehuntx View Post
Hast du den Sinn von Delay verstanden?

Es steht dafür, z.B. alle 30 Minuten die Ip zu ändern.

Wie soll es deiner meinung nach ohne Sleep funktionieren...
Jetzt wo ich es lese, mir scheint, dass du seit Beginn des Threads nichts gelernt hast.
Die Lösung befand sich schon bereits im 2. Beitrag (Timer, kein Sleep). PenGuin :O gab
dir noch ein Beispiel mit AdlibRegister (kein Sleep), was zur Lösung beitragen kann. Du
solltest aus anderen Scripts lernen und nicht darauf hoffen, dass es dir jemand so
zusammenstellt wie du es dir vorstellst, um es anschließend nur noch kopieren zu müssen.
Und wie PenGuin :O schon sagte gibt es keinen Grund unhöflich zu werden, das bringt
niemanden weiter, du machst es dir durch Unbeliebtheit höchstens schwieriger.
12/30/2010 02:20 freehuntx#22
Ist es eurer meinung nach "Patzig" wenn man jemanden Fragt ob er den sinn eines teils des script verstanden hat?

also echt..

Ich wollte ihn nur darauf aufmerksam machen dass der wichtige teil des scripts, die stelle ist, an welcher der sleep kommt.

Ich brauche schließlich eure hilfe nicht ihr meine. Wieso sollte ich euch dann "Absichtlich" doof anmachen?

Es war nicht so gemeint wie ihr es versteht. Und dafür kann ich doch nichts...



KillerDeluxe, Dein Script Funktioniert.
Es tut mir Leid dass ich ihn nicht verstanden habe.

Ist das ok so?
12/30/2010 02:50 PenGuin :O#23
Quote:
Originally Posted by freehuntx View Post
Ist das ok so?
Das musst du selber wissen.
Nur frage ich mich, ob du jetzt was dabei gelernt hast oder ob du nächstes Mal wieder fragst, weil das soll ja nicht der Zweck unserer Arbeit sein, dir alles vor die Füße zu werfen.
Naja, ich glaub der Thread ist gelöst, kann eig. geclosed werden.
12/30/2010 22:40 freehuntx#24
Quote:
Originally Posted by PenGuin :O View Post
Nur frage ich mich, ob du jetzt was dabei gelernt hast oder ob du nächstes Mal wieder fragst, weil das soll ja nicht der Zweck unserer Arbeit sein, dir alles vor die Füße zu werfen.
Ich schaue mir das Script schon an und versuche es zu verstehen.
Wenn es deine Meinung ist, jemanden etwas vor die füße zu werfen, indem du versuchst ihm zu helfen, kann ich nichts dafür.


Quote:
Originally Posted by PenGuin :O View Post
Naja, ich glaub der Thread ist gelöst, kann eig. geclosed werden.
Ja er ist gelöst wie man Unschwer an der Überschrift erkennen kann.



Es ist nunmal meine art so zu schreiben. Wenn sich Leute dadurch Angegriffen fühlen, ist es ihre sache.
12/31/2010 03:45 KDeluxe#25
Du solltest keine Arbeit nachgehen, bei der du im Kontakt mit Kunden stehst, außer du möchtest für den Kundenservice der Telekom arbeiten.
Wie heißt es so schön, "Einsicht ist der beste Weg zur Besserung".