1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Exgod

Beiträge von Exgod

  • Taste, die durch Variable bestimmt wird, X mal ausgeben

    • Exgod
    • 1. November 2014 um 19:07

    Klasse, vielen Dank! :D

    Haha schade, das wär doch ganz interessant gewesen :o

  • Taste, die durch Variable bestimmt wird, X mal ausgeben

    • Exgod
    • 1. November 2014 um 18:49

    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 :D

    MfG

  • (Anfänger)Mehrere Schleifen gleichzeitig?

    • Exgod
    • 31. Oktober 2014 um 21:41

    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 :D

  • (Anfänger)Mehrere Schleifen gleichzeitig?

    • Exgod
    • 31. Oktober 2014 um 21:16

    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 :D

  • (Anfänger)Mehrere Schleifen gleichzeitig?

    • Exgod
    • 31. Oktober 2014 um 21:00

    Ob ich Punkt oder Komma verwende ändert nichts daran, dass die Fehlermeldung kommt =/

    Habe tatsächlich beides ausprobiert :D Das ganze sieht jetzt so aus:
    Global
    $i_Intervall1 = 1.5,
    $i_Intervall2 = 1.5,
    $i_Intervall3 = 3,

  • (Anfänger)Mehrere Schleifen gleichzeitig?

    • Exgod
    • 31. Oktober 2014 um 20:51

    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

  • (Anfänger)Mehrere Schleifen gleichzeitig?

    • Exgod
    • 31. Oktober 2014 um 20:24

    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 :saint:

    Danke :D

    Edit: Ich hab doch unter F1 Hilfe. Oder meinst du eine andere?#

    Edit2: @Kanashius : hab ich versucht. Selber Error wie ^

  • (Anfänger)Mehrere Schleifen gleichzeitig?

    • Exgod
    • 31. Oktober 2014 um 19:49

    Okay, ich sehe, dass mir ziemlich viel gefehlt hat :rofl:
    Ich setz mich mit dem von Dir noch mal ran, vielen Dank! :D

  • (Anfänger)Mehrere Schleifen gleichzeitig?

    • Exgod
    • 31. Oktober 2014 um 19:46

    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"

  • (Anfänger)Mehrere Schleifen gleichzeitig?

    • Exgod
    • 31. Oktober 2014 um 19:22

    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.

  • (Anfänger)Mehrere Schleifen gleichzeitig?

    • Exgod
    • 31. Oktober 2014 um 17:08

    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.

  • (Anfänger)Mehrere Schleifen gleichzeitig?

    • Exgod
    • 31. Oktober 2014 um 16:34

    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

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™