[verschoben nach H&U]
Beiträge von Oscar
-
-
Ich kenne den GOTO-Befehl noch vom C64 BASIC und was da an Spaghetticode bei entstanden ist, geht auf keine Kuhhaut.
Völlig wirres Hin- und Herspringen war bei manchen Codern normal und wenn die nach einem Jahr selbst mal wieder ihr Programm anschauten, konnte das keiner mehr überblicken.
Ich war damals schon immer bemüht, die GOTOs so gering wie möglich zu halten. Ganz verhindern konnte man das wegen der fehlenden Alternativen aber nicht. Ganz schlimm war, dass es keine Label gab. Man musste Zeilennummern anspringen. Wenn man nachträglich einen Befehl einfügte, musste man von Hand alle GOTOs entsprechend anpassen. Grausam!
Das ist wohl auch der Grund warum ich überaus dankbar bin, dass es in AutoIt kein GOTO gibt. Und ich habe es auch noch nie vermisst. Die vielen Schleifen und die Möglichkeit von Funktionen sind mir um ein vielfaches lieber.

P.S.: Ich kenne aus der C64 Zeit auch noch Assembler und natürlich braucht man dort eine Art GOTO. Dort ist die Situation IMHO aber eine andere. Man programmiert viel hardwarenäher und die Sprünge sind meist nicht sehr "weit".
-
[verschoben nach H&U]
-
[verschoben nach H&U]
-
Äh, wie bitte?
Hast Du den Text durch den GoogleTranslator laufen lassen?
Bitte mal in deutsch... -
SciTE4AutoIt3.exe (links unter Downloads) installieren! Wie Ineluki bereits schrieb.
-
-
Auch von mir alles Gute zum Geburtstag (nachträglich).
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
P.S.: Wenn's gestern die große Party war, dann wirst Du das hier ja noch nicht gleich lesen.
-
Vom Ampelverhalten her korrekt. Vielleicht willst Du das Skript noch um Fussgängerampeln erweitern!?
Diese Funktion wird aber nicht allzu lange laufen:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
Func _StartLoop()
; Light 1
_TurnTrafficLightToColor(0,2) ; green
_TurnTrafficLightToColor(2,2); Light 2
[/autoit] [autoit][/autoit] [autoit]
_TurnTrafficLightToColor(1,0) ; red
_TurnTrafficLightToColor(3,0)
Sleep(5000)
; Light 1
_TurnTrafficLightToColor(0,3) ; amber
_TurnTrafficLightToColor(2,3)
Sleep(2000)
; Light 1
_TurnTrafficLightToColor(0,0) ; red
_TurnTrafficLightToColor(2,0)
Sleep(2000)
; Light 2
_TurnTrafficLightToColor(1,1) ; amber - red
_TurnTrafficLightToColor(3,1)
Sleep(2000)
; Light 2
_TurnTrafficLightToColor(1,2) ; green
_TurnTrafficLightToColor(3,2)
Sleep(5000)
; Light 2
_TurnTrafficLightToColor(1,3) ; amber
_TurnTrafficLightToColor(3,3)
Sleep(2000)
; Light 2
_TurnTrafficLightToColor(1,0) ; red
_TurnTrafficLightToColor(3,0)
Sleep(2000)
; Light 1
_TurnTrafficLightToColor(0,1) ; amber - red
_TurnTrafficLightToColor(2,1)
Sleep(2000)
; Light 1
_TurnTrafficLightToColor(0,0)
_TurnTrafficLightToColor(2,0)_StartLoop()
[/autoit]
EndFunc
Am Ende der Funktion rufst Du die Funktion erneut auf. In AutoIt gibt es aber kein GoTo (zum Glück) und dieser Aufruf stellt einen rekursiven Funktionsaufruf dar. Nach spätestens 5100 Aufrufen wird sich Dein Skript verabschieden (AutoIt-Limit für rekursive Aufrufe).
Eine Do...Until- oder While...WEnd-Schleife wäre hier die richtige Wahl gewesen.Achja und eine Möglichkeit zum beenden des Skripts wäre auch ganz schön.

-
17.000 Ungülitge Datei Referenzen/Pfad.... oder sowas
Nun ja hatt jemand ein Programm mit dem mann es kostenlos beheben kann?!?Sowas habe ich mal bei einem Arbeitskollegen gesehen. Dem hatte jemand einen Spaßvirus geschickt und dieser "Virus" hat die Festplatte mit lauter Dateien zugemüllt.
Starte mal "msconfig.exe" und schau mal unter "Systemstart" was da alles mit Windows mitgestartet wird.Oder gleich mal von einer AntiVirus-CD booten und den Rechner komplett checken lassen.
-
Bei Avira habe ich auch schon ein Skript als "false positive" gemeldet (als Privatperson) und das wurde sofort mit dem nächsten Update behoben.
Ich bin sehr zufrieden mit denen. -
Ich hatte dazu mal ein Skript geschrieben. Finde es jetzt aber nicht im Forum, deshalb hier (im Anhang) nochmal.
Mit diesem Skript kannst Du Dir diverse Informationen zu AVI-Dateien ausgeben lassen. -
Dein "ausprobieren" sieht sehr nach einem Game-Bot aus. Sowas unterstützen wir hier nicht (siehe Forenregeln).
Du solltest also schon konkreter werden.
-
Welches Programm möchtest Du da ansteuern?
-
Statt umständlicher und fehlerträchtiger Mausbewegungen und Sendbefehlen, verwende lieber die Control... Befehle. Mit dem Programm "Au3Info.exe" bekommst Du die dazu nötigen Informationen.
Falls Du sonst noch Fragen hast, poste bitte Dein Skript und erkläre welches Programm Du wie ansteuern möchtest.
-
Moin UEZ!
Herzlichen Glückwunsch zum Geburtstag!
Bleib uns hier im Forum erhalten und schreib' weiter so coole Skripte.

Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. P.S.: Um den Bug kümmere ich mich nachher...
-
-
Alle Zeichen ".+" und das "?" damit RegExp nicht so gierig ist.
-
Genaugenommen ist das kein Fehler von AutoIt, sondern des Programmierers.
Im Ernst: solche Berechnungen sollten sich nicht in der MessageLoop-Schleife befinden. Am besten in eine Funktion packen und diese mit AdlibRegister aufrufen, dann hast Du das Problem nicht. -
Das Problem liegt am MessageLoopModus. Siehe auch hier:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
$hGui = GUICreate('Test (MessageLoopMode)')
$hCounter = GUICtrlCreateLabel(0, 10, 10, 100, 20)
GUISetState()
Do
GUICtrlSetData($hCounter, GUICtrlRead($hCounter) + 1)
Until GUIGetMsg() = -3
GUIDelete($hGui)Opt('GUIOnEventMode', 1)
[/autoit] [autoit][/autoit] [autoit]
$hGui = GUICreate('Test (OnEventMode)')
GUISetOnEvent(-3, '_End')
$hCounter = GUICtrlCreateLabel(0, 10, 10, 100, 20)
GUISetState()
Do
GUICtrlSetData($hCounter, GUICtrlRead($hCounter) + 1)
Until 0Func _End()
[/autoit]
Exit
EndFunc
Beim ersten Beispiel wird schneller gezählt, wenn die Maus bewegt wird. Das liegt an der dynamischen Prozessorauslastung im MessageLoopModus.