[Tutorial] Start/Stopp Funktion einbauen

11/21/2012 10:56 MiiSaL#1
Das hier kommt gleich am Anfang Vom Script!



Nachdem ihr das gemacht habt macht ihr 2 Enter's und Fügt das ein

Jetzt Kommt euer Script das sieht dann so aus:


Unter dem Script kommt dann noch:

Jetzt 2 mal Enter und das hier Hinschreiben:

Und unser Script sieht dann so aus:

Danke fürs Anschauen :))
11/21/2012 11:35 Croco™#2
Es ist zwar schön dass du das "Tutorial" gemacht hast, aber es bringt niemandem etwas wenn er nur die CTRL+C Tasten drücken muss. Von einem Tutorial sollte man lernen so dass man das Wissen dann auf sein Programm übertragen kann. D.h es wäre schön wenn du jeden deiner Schritte erklärst.

MfG Croco
11/21/2012 19:55 Logtetsch#3
Von einer Start/ Stopp Funktion kann kaum eine Rede sein.
Du hast zwei ganz normale Funktionen, die beim Ausführen nur einen Durchgang machen.
Was du wahrscheinlich meintest, ist, dass wenn die Start Funktionen ausgeführt wird, sich die ganze Zeit wiederholt bis man die Stopp Funktion aufruft.

Jemand der keine Ahnung hat, sollte jemanden, der auch keine Ahnung hat, nicht lehren. Außerdem verstehe ich die Syntax deiner While Schleife nicht.

Code:
While (sleep(1))
Das ist mit Abstand der größte Bullshit, den ich gesehen habe. Laut der AutoIt-Hilfe

Quote:
Wenn der Ausdruck wahr ist, werden die Codezeilen bis WEnd ausgeführt. Die Schleife wird fortgesetzt, bis der Ausdruck unwahr ist.
Demnach zufolge reicht ein einfaches

Code:
While 1 ; While True
     ......
Wend
11/23/2012 16:19 dnangel1#4
Weiss jemand wie ich Alt+1 bis 0 senden kann ? Habe schon im forum bei autoit gesucht :s
11/23/2012 16:59 Lawliet#5
Quote:
Originally Posted by Logtetsch View Post
Von einer Start/ Stopp Funktion kann kaum eine Rede sein.
Du hast zwei ganz normale Funktionen, die beim Ausführen nur einen Durchgang machen.
Was du wahrscheinlich meintest, ist, dass wenn die Start Funktionen ausgeführt wird, sich die ganze Zeit wiederholt bis man die Stopp Funktion aufruft.

Jemand der keine Ahnung hat, sollte jemanden, der auch keine Ahnung hat, nicht lehren. Außerdem verstehe ich die Syntax deiner While Schleife nicht.

Code:
While (sleep(1))
Das ist mit Abstand der größte Bullshit, den ich gesehen habe. Laut der AutoIt-Hilfe



Demnach zufolge reicht ein einfaches

Code:
While 1 ; While True
     ......
Wend
While sleep(x)
Wend


Wird in manchen Fällen genutzt um den PC zu schon. Das geht da sleep True zurückgibt.
11/24/2012 00:00 Logtetsch#6
Macht für mich trotzdem keinen Sinn, weil das kompletter Unfug ist.
Wie kann man sich nur so sein Leben schwer machen...
11/24/2012 11:05 K1ramoX#7
also eine start/stop funktion stell ich mir komplett anders vor. So hier:

11/24/2012 11:32 Shadow992#8
Quote:
Originally Posted by Logtetsch View Post
Macht für mich trotzdem keinen Sinn, weil das kompletter Unfug ist.
Wie kann man sich nur so sein Leben schwer machen...
Das ist nicht totaler Unfug und hat strenggenommen sogar eine geringere Ausführungszeit als dieser äquivalente Code:

PHP Code:
While 1
sleep
(1)
Wend 
Denn ein Grundsatz gilt bei so gut wie jeder Interpretsprache:
"Je weniger Zeilen ein Code besitzt, desto geringer ist seine Ausführungszeit im Vergleich zum äquivalenten Code, der für jeden Befehl eine Zeile einnimmt."

Das heißt der vorgeschlagene Code ist, strenggenommen, sogar deinem vorzuziehen.
Dennoch hast du in gewisser Weise recht, dass es im momentanen Beispiel Unfug ist, da die Laufzeit von der Schleife total egal ist, sie wird ja eh künstlich hoch gehalten. Ein Anfänger würde also mit Sicherheit die "Eine Zeile ein Befehl"-Variante besser verstehen.

Dennoch Skriptspezifisch und in laufzeitkritischen Situationen, kann der oben angewandte "Trick" hilfreich sein.
11/24/2012 19:22 Achat#9
Quote:
Originally Posted by Logtetsch View Post
Jemand der keine Ahnung hat, sollte jemanden, der auch keine Ahnung hat, nicht lehren.
[Only registered and activated users can see links. Click Here To Register...]

Pause-Funktion:

Code:
Global $fDo = True

HotKeySet('{F8}', '_change')

While $fDo
	MsgBox(0, 0, 'rofl')
WEnd

Func _change()
	$fDo = Not $fDo
EndFunc   ;==>_change
HotKeySet hat den Nachteil, dass die Taste dann blockiert ist.

Alternative mit _IsPressed:

Code:
#include <Misc.au3>
Global $hUser32DLL=DllOpen('user32.dll')
While Not _IsPressed('77',$hUser32DLL) ; F8
	MsgBox(0, 0, 'rofl',1)
WEnd
DllClose($hUser32DLL)
MfG