Antwort erkennen und Funktion ausführen?

  • Guten Tag,

    ist es möglich, dass Autoit die Antworten, die ins Input geschrieben wurden, ließt und daraus dann einen Befehl zieht, je nachdem, welche Antwort gegeben wurde?

    So sollte es dann ca. aussehen :

    If Write (GuiCtrlRead($Input1)) " Tomate " then

    ..............

    If Write (GuiCtrlRead($Input1)) " Ente " then

    .............

    Das was wie ein Script aussieht, ist natürlich völliger Schwachsinn und ich habe es sozusagen nur erfunden, damit ihr euch besser drunter vorstellen könnt, was ich damit meine.

    Mit freundlichen Grüßen,

    White

  • Guten Morgen...

    Und dein Guten Tag um 1 Uhr in der Früh :rofl:

    Ich machs so: :)
    Kommt drauf an ob z.b. 2 worte eine funktion ausführen soll oder 2 worte mit verschieden funktionen...

    Spoiler anzeigen
    [autoit]


    Variante 1:

    [/autoit] [autoit][/autoit] [autoit]

    If (GuiCtrlRead($Input1)) = " Tomate " Or "Ente" Then
    Funktion1()
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Variante 2:

    [/autoit] [autoit][/autoit] [autoit]

    If (GuiCtrlRead($Input1)) = "Tomate" Then
    Funktion1()
    EndIf
    If (GuiCtrlRead($Input1)) = "Ente" Then
    Funktion2()
    EndIf

    [/autoit]


    Ohne Write... weiß nicht woher du es hast aber den Fehler mach ich auch immer weil ich ja auch noch andere Programmiersprachen kann die immer in meinem hirn rumflitzen

    Also... an alle die es besser können bzw. schreiben dann machts ruhig... ich bin noch kein profi aber versuchs zumindest...
    Und wenn ich fehler drin hab dann behaltet sie oder schreibts richtig ;)

    Gruß
    Fabi

  • oder so:

    Spoiler anzeigen
    [autoit]


    ;Variante 3:

    [/autoit] [autoit][/autoit] [autoit]

    Select
    Case GuiCtrlRead($Input1) = "rot"
    Funktion_1()
    Case GuiCtrlRead($Input1) = "gelb"
    Funktion_2()
    Case GuiCtrlRead($Input1) = "grün"
    Funktion_3()
    Case Else
    MsgBox(0, "Rückmeldung", "Auswertung kann nicht erfolgen. Bitte gebe eine der folgenden Farben ein: rot, gelb, grün.")
    EndSelect

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    func Funktion_1()
    MsgBox(0, "Rückmeldung", "rot = anhalten.")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    func Funktion_2()
    MsgBox(0, "Rückmeldung", "geld = gleich geht es los.")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    func Funktion_3()
    MsgBox(0, "Rückmeldung", "grün = los fahren bzw. schnell weiter fahren bevor ...")
    EndFunc

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • ich würde anstelle des selects switch nehmen:

    Spoiler anzeigen
    [autoit]

    ;Variante 4:

    [/autoit] [autoit][/autoit] [autoit]

    switch GuiCtrlRead($Input1)
    Case "rot"
    Funktion_1()
    Case "gelb"
    Funktion_2()
    Case "grün"
    Funktion_3()
    Case Else
    MsgBox(0, "Rückmeldung", "Auswertung kann nicht erfolgen. Bitte gebe eine der folgenden Farben ein: rot, gelb, grün.")
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    func Funktion_1()
    MsgBox(0, "Rückmeldung", "rot = anhalten.")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    func Funktion_2()
    MsgBox(0, "Rückmeldung", "gelb = gleich geht es los.")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    func Funktion_3()
    MsgBox(0, "Rückmeldung", "grün = los fahren bzw. schnell weiter fahren bevor ...")
    EndFunc

    [/autoit]

    mfg autoBert

  • Vielen Dank genau so etwas habe ich gesucht. ;)

    reagiert er nun auf bestimmte Schlüsselwörter wie z.B.

    wenn man nun

    " ich bin ein cool Typ " schreibt, dass er auf

    " ich " und " cool " im Satz reagiert und dazu eine Funktion einbaut?

  • Da hast du z.B. folgende Möglichkeiten

    [autoit]

    If StringRegExp("ich bin ein cooler Typ", "^.*(ich).*(cooler).*$") = 1 Then ConsoleWrite(True & @CRLF)
    ;oder
    If StringInStr("ich bin ein cooler Typ", "ich") And StringInStr("ich bin ein cooler Typ", "cooler") Then ConsoleWrite(True & @CRLF)

    [/autoit]

    21 is only half the truth.