Klasse, vielen Dank!
Haha schade, das wär doch ganz interessant gewesen :o
Klasse, vielen Dank!
Haha schade, das wär doch ganz interessant gewesen :o
Hey Leute, ich habe folgendes Problem:
Func A
ControlSend($windowname,"","","{3 50}")
EndFunc
Drückt die taste 3 50x. Ohne Probleme. Aber:
$variable1 = InputBox("Variable","Gib Variable ein" )
Func A
ControlSend($windowname,"","","{$variable1 50}")
EndFunc
Drückt, wenn ich z.B in die InputBox 3 eingebe, die Taste 4 1x anstatt die Taste 3 50x.
Hab ich hier einen Denkfehler, oder verstehen sich $variable1 & 50 nicht?
Dieser ganze Versuch entstand so, dass ich ursprünglich einen Befehl - in diesem Fall:
ControlSend($windowname,"","","{$variable1}")
X mal ausgeben wollte, aber nicht wusste wie. X mal den Befehl in die Funktion zu kopieren kam dann sogar mir zu unprofessionell vor
MfG
Habs hinbekommen. Alles funktioniert so, wie es funktionieren soll. Vielen Dank @Techmix! und @Kanashius.
Wieso auch immer scheint das Script aber trotzdem Windows zu beeinflussen und drückt ständig Shift und Ctrl, anstatt nur an das Text Dokument zu senden. Ist aber egal, ich hab geschafft, was ich schaffen wollte. Jetzt probiere ich mich mal an einer GUI
Ich hab tatsächlich ein Komma zu viel geschrieben -.-
Das Problem war:
Global _
$i_Intervall1 = 1.5, _
$i_Intervall2 = 1.5, _
$i_Intervall3 = 3 ----> , <----
Dieses Komma.
Vielen Dank, werde weiter ausprobieren und Feedback geben
Ob ich Punkt oder Komma verwende ändert nichts daran, dass die Fehlermeldung kommt =/
Habe tatsächlich beides ausprobiert Das ganze sieht jetzt so aus:
Global
$i_Intervall1 = 1.5,
$i_Intervall2 = 1.5,
$i_Intervall3 = 3,
Da sind keine Leerzeichen, sorry. Ich schreib mal exakt aus dem Error ab:
Line 7 (File "C:\...)
Global $i_Intervall1 = 1,5, $i_Intervall2 = 1,5, $i_Intervall3 =3, Global $i_Intervall1 = 1,^ERROR
Error: No variable given for "Dim", "Local", "Global", "Struct" or "Const" statement.
EDIT: hab mal die Striche raus genommen, also von:
Global _
$i_Intervall1 = 3, _
$i_Intervall2 = 5, _
$i_Intervall3 = 10
nach
Global
$i_Intervall1 = 3,
$i_Intervall2 = 5,
$i_Intervall3 = 10
dann kommt nur noch folgendes:
Global
Global^ERROR
Error: No variable given for "Dim", "Local", "Global", "Struct" or "Const" stat
Ich habe jetzt praktisch (versucht) mein Script mit dem, was du geschrieben hast, ergänzt.
Dann komm das:
Error Line 7:
Global $i_intervall 1 = 1.5.....
(zählt alle intervalle auf)
Error: No variable given for "Dim", "Local", "Global", "Struct" or "Const" statement.
Habe 0 Ahnung, was das bedeutet. Tipps? Am besten nur Erklären was der Error bedeutet, ich würde das gern selbst gefixt bekommen
Danke
Edit: Ich hab doch unter F1 Hilfe. Oder meinst du eine andere?#
Edit2: @Kanashius : hab ich versucht. Selber Error wie ^
Okay, ich sehe, dass mir ziemlich viel gefehlt hat
Ich setz mich mit dem von Dir noch mal ran, vielen Dank!
Ihr werdet das bestimmt schrecklich finden
Also erst mal das mit adlib ( weil ich das zuletzt ausporbiert habe
HotKeySet("{F5}", "_Start")
HotKeySet("{F6}", "TogglePause")
HotKeySet("{F7}", "Terminate")
$windowname = "Neues Textdokument"
Func _Start()
AdlibRegister("A", 3000)
AdlibRegister("B", 5000)
AdlibRegister("C", 7000)
EndFunc
Func A()
ControlSend($windowname,"A")
EndFunc
Func B()
Send($windowname,"B")
EndFunc
Func C()
ControlSend($windowname,"C")
EndFunc
Func TogglePause()
= Not paused
While $paused
sleep(100)
WEnd
EndFunc
Func Terminate()
Exit 0
EndFunc
Was das machen soll: alle 3000ms den text aus "A" schreiben, alle 5000ms den Text aus "B" schreiben & alle 7000ms den Text aus "C" schreiben.
Und jetzt das mit dem timer, auch wenn das mittlerweile noch kaputter als vorher ist, weil ich so doof daran rumgebastelt hab:
Global $Paused
HotKeySet("{F5}", "TogglePause")
HotKeySet("{F6}", "Terminate")
$timer1 = TimerInit()
$windowname = "Neues Textdokument"
If <C> true, Then
A
Else
While 1
B
Sleep(1000)
WEnd
EndIf
Func A()
ControlSend($windowname,"A")
EndFunc
Func B()
ControlSend($windowname,"B")
Func C()
if($timer1 = 5000) Then
return True
Else
return False
EndIf
EndFunc
Func TogglePause()
$Paused = Not $Paused
While $Paused
Sleep(100)
WEnd
EndFunc
Func Terminate()
Exit 0
EndFunc
Was das machen soll: alle 1000ms den Text aus "A" schreiben und alle 5000ms, wenn der Timer also rum ist, den Text aus "B"
Also ich habe jetzt relativ lange daran rumgebastelt, aber habe den dreh immer noch nicht raus.
@Techmix : ich habe versucht, eine funktion über ifthen & einen timer zu verwenden. Ich wollte also, wenn X zeit abgelaufen ist, Befehl Y ausgeführt wird. Jedoch habe ich das mit dem timer überhaupt nicht begriffen. Ich verstehe nicht, wie ich dem ifthen befehl sage, dass wenn X zeit vorgangen ist, Funktion X ausgeführt werden soll - ohne das der rest des scripts während der vergehenden zeit nichts tut?
Wenn das nicht der Weg war, den du im Kopf hattest, könntest du deinen Gedankengang von vorhin auch noch ein mal genauer erklären?
@bobekos : das habe ich dann auch versucht. Nur dabei wird das script irgendwie nicht mal ausgeführt. Ich erstelle also Genügend Funktionen, um alle Befehle, die ich benötige, nutzen zu können. Dann erstelle ich eine Funktion, die per adlib all diese funktionen nutzen soll:
Func _Start()
AdlibRegister("Func1", 100)
AdlibRegister("Func2", 100)
AdlibRegister("Func3", 100)
EndFunc
Weise der obigen Funktion einen Hotkey zu, starte das Script, drücke ihn und dann passiert nichts. Obwohl die Funktionen sonst funktionieren, passiert hier nichts..
Wenn es Sinnvoll ist, kann ich mein Script mal hier posten.
Danke für die schnelle Antwort!
Ich versuche dann mal das, was ich vor hatte, mit einer Funktion zu lösen. Werde nach dem Versuch Feedback geben.
Hallöchen,
ich versuche in letzter Zeit mich ein wenig mit AutoIT zu befassen. Bis hierhin habe ich meine Probleme auch immer mit Google lösen können, aber für mein derzeitiges Problem konnte ich einfach keine Lösung finden. Eigentlich ist das, was ich (ver)suche, relativ einfach gedacht:
Ich habe mehrere Befehle. Sagen wir es sind 3, welche jeweils verschiedene sleep(zeiten) haben. Mein Problem ist jetzt, dass ich mit einer While schleife nur so vorgehen kann:
While 1
Befehl #1
Sleep(x)
Befehl #2
Sleep(y)
Befehl #3
Sleep(z)
WEnd
Das ganze von vorne. Jeder Befehl wird nach dem nächsten ausgeführt.
Ich hätte aber gerne, dass alle 3 Befehle zeitgleich fungieren. Also alle zur selben Zeit gestartet werden & im unendlich loop wiederholt werden - ohne dass der eine Befehl auf die Beendigung eines anderen warten muss. Ich habe versucht verschiedene While schleifen zu benutzen,(d.h. für jeden Befehl habe ich eine While Schleife geschrieben) das hat aber irgendwie nicht geklappt.
Wäre nett, wenn mir jemand hierbei helfen könnte. Ich entschuldige mich, falls diese Frage schon gestellt wurde - ich habe gesucht, aber nichts gefunden, was mir mein Problem gelöst bzw. verständlich erklärt hat.
MfG