Ich hab ein Problem

  • [autoit]

    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    ;-----------------------------------
    GUICreate("AutoIt", @DesktopWidth, @DesktopHeight , 0 , 0)
    GUIsetstate()

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

    Global $input[31]

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

    $input[1] = GUICtrlCreateInput("", 0, 0, @DesktopWidth)
    $input[2] = GUICtrlCreateInput("", 0, 20, @DesktopWidth)
    $input[3] = GUICtrlCreateInput("", 0, 40, @DesktopWidth)
    $input[4] = GUICtrlCreateInput("", 0, 60, @DesktopWidth)
    $input[5] = GUICtrlCreateInput("", 0, 80, @DesktopWidth)
    $button = GUICtrlCreateButton("Start", @DesktopWidth / 2 - 75 , @DesktopHeight / 2 - 50, 150, 100)
    GUIctrlsetonevent($button, "Start")
    While 1
    Sleep(1000)
    Wend

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

    Func Start ()
    sleep(5000)
    For $i = 1 to 5

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

    If $input[$i] = "Hi" Then
    $input[$i] = "Beispiel"
    EndIf
    send($input[$i])
    next
    EndFunc

    [/autoit]

    Eigentlich sollte dieses Programm schreiben was man in die $input[] Varriablen geschrieben hat und wenn es "Hi" Ist sollte dort "Beispiel" stehen aber es spuckt nur Zahlen aus.
    Warscheinlich liegt es an den [] klammern ich habe damit das erste mal was gemacht (außer natürlich bei Mousegetpos usw.) .

  • [autoit]

    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    ;-----------------------------------
    GUICreate("AutoIt", @DesktopWidth, @DesktopHeight , 0 , 0)
    GUIsetstate()

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

    Global $input[31]

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

    $input[1] = GUICtrlCreateInput("", 0, 0, @DesktopWidth)
    $input[2] = GUICtrlCreateInput("", 0, 20, @DesktopWidth)
    $input[3] = GUICtrlCreateInput("", 0, 40, @DesktopWidth)
    $input[4] = GUICtrlCreateInput("", 0, 60, @DesktopWidth)
    $input[5] = GUICtrlCreateInput("", 0, 80, @DesktopWidth)
    $button = GUICtrlCreateButton("Start", @DesktopWidth / 2 - 75 , @DesktopHeight / 2 - 50, 150, 100)
    GUIctrlsetonevent($button, "Start")
    While 1
    Sleep(1000)
    Wend

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

    Func Start ()
    sleep(5000)
    For $i = 1 to 5

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

    If GUICtrlRead($input[$i]) = "Hi" Then
    GUICtrlSetData($input[$i], "Beispiel")
    EndIf
    next
    EndFunc

    [/autoit]
  • Ich hab noch ein Problem das Beispiel oben geht jetzt aber ich krige das anscheinend immer noch nicht richtig hin, denn als ich es bei etwas anderem anwenden wollte spuckte dies auch nur Zahlen aus (3-32)

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

    Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
    ;-----------------------------------
    GUICreate("AutoIt", @DesktopWidth, @DesktopHeight , 0 , 0)
    GUIsetstate()

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

    Global $input[31]
    Global $info[31]

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

    Global $Druck = 0
    Global $Warte = 0
    Global $Schreibe = 0
    Global $Box = 0
    Global $Wiederholen = 0

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

    Dim $X
    $X = 0

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

    For $i = 1 to 30
    $input[$i] = GUICtrlCreateInput("", 0, $X, @DesktopWidth)
    $X = $X + 20
    next

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

    $button = GUICtrlCreateButton("Umwandeln", 0, @DesktopHeight - 130, 150, 100)
    $buttonS = GUICtrlCreateButton("Start", @DesktopWidth - 150, @DesktopHeight - 130, 150, 100)
    $button2 = GUICtrlCreateButton("Taste", 200, @DesktopHeight - 70, 100, 50)
    $button3 = GUICtrlCreateButton("Warte", 300, @DesktopHeight - 70, 100, 50)
    $button4 = GUICtrlCreateButton("Schreibe", 400, @DesktopHeight - 70, 100, 50)
    $button5 = GUICtrlCreateButton("Box", 500, @DesktopHeight - 70, 100, 50)
    $button6 = GUICtrlCreateButton("Wiederholen", 600, @DesktopHeight - 70, 100, 50)
    GUIctrlsetonevent($button, "Ubersetzen")
    GUIctrlsetonevent($buttonS, "Start")
    GUIctrlsetonevent($button2, "Druck")
    GUIctrlsetonevent($button3, "Warte")
    GUIctrlsetonevent($button4, "Schreibe")
    GUIctrlsetonevent($button5, "Box")
    GUIctrlsetonevent($button6, "Wiederholen")
    While 1
    Sleep(100)
    WEnd

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

    Func Ubersetzen ()
    For $i = 1 to 30
    If GUICtrlRead($input[$i]) = "[Drück]" Then
    GUICtrlSetData($input[$i], "Send(" & '"' & "{")
    $Info[$i] = 1
    EndIf

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

    If GUICtrlRead($input[$i]) = "[\Drück]" Then
    GUICtrlSetData($input[$i], "}" & '"' & ")")
    $Info[$i] = 2
    EndIf
    If GUICtrlRead($input[$i]) = "[Warte]" Then
    GUICtrlSetData($input[$i], "sleep(")
    $Info[$i] = 3
    EndIf

    If GUICtrlRead($input[$i]) = "[\Warte]" Then
    GUICtrlSetData($input[$i], ")")
    $Info[$i] = 4
    EndIf

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

    If GUICtrlRead($input[$i]) = "[Schreibe]" Then
    GUICtrlSetData($input[$i], "Send(" & '"')
    $Info[$i] = 5
    EndIf

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

    If GUICtrlRead($input[$i]) = "[\Schreibe]" Then
    GUICtrlSetData($input[$i], '"' & ")")
    $Info[$i] = 6
    EndIf

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

    If GUICtrlRead($input[$i]) = "[Box]" Then
    GUICtrlSetData($input[$i], "MsgBox(")
    $Info[$i] = 7
    EndIf

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

    If GUICtrlRead($input[$i]) = "[\Box]" Then
    GUICtrlSetData($input[$i], ")")
    $Info[$i] = 8
    EndIf

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

    If GUICtrlRead($input[$i]) = "[Wiederholen]" Then
    GUICtrlSetData($input[$i], "While 1")
    $Info[$i] = 9
    EndIf

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

    If GUICtrlRead($input[$i]) = "[\Wiederholen]" Then
    GUICtrlSetData($input[$i], "WEnd")
    $Info[$i] = 10
    EndIf
    next
    EndFunc

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

    Func Start()
    sleep(10000)
    For $i = 1 to 30
    send($input[$i])

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

    If GUICtrlRead($info[$i]) = 1 Then

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

    elseIf GUICtrlRead($info[$i]) = 2 Then

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

    elseIf GUICtrlRead($info[$i]) = 3 Then

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

    elseIf GUICtrlRead($info[$i]) = 4 Then
    Send("{Enter}")

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

    elseIf GUICtrlRead($info[$i]) = 5 Then

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

    elseIf GUICtrlRead($info[$i]) = 6 Then
    Send("{Enter}")

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

    elseIf GUICtrlRead($info[$i]) = 7 Then

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

    elseIf GUICtrlRead($info[$i]) = 8 Then
    Send("{Enter}")

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

    elseIf GUICtrlRead($info[$i]) = 9 Then
    Send("{Enter}")

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

    elseIf GUICtrlRead($info[$i]) = 10 Then
    Send("{Enter}")
    EndIf

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

    next
    EndFunc

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

    Func Druck()
    If $Druck = 1 Then
    sleep(2000)
    send("[\Drück]")
    $Druck = 0

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

    Else
    sleep(2000)
    send("[Drück]")
    $Druck = 1
    EndIf
    EndFunc

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

    Func Warte()
    If $Warte = 1 Then
    sleep(2000)
    send("[\Warte]")
    $Warte = 0

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

    Else
    sleep(2000)
    send("[Warte]")
    $Warte = 1
    EndIf
    EndFunc

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

    Func Schreibe()
    If $Schreibe = 1 Then
    sleep(2000)
    send("[\Schreibe]")
    $Schreibe = 0

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

    Else
    sleep(2000)
    send("[Schreibe]")
    $Schreibe = 1
    EndIf
    EndFunc

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

    Func Box()
    If $Box = 1 Then
    sleep(2000)
    send("[\Box]")
    $Box = 0

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

    Else
    sleep(2000)
    send("[Box]")
    $Box = 1
    EndIf
    EndFunc

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

    Func Wiederholen()
    If $Wiederholen = 1 Then
    sleep(2000)
    send("[\Wiederholen]")
    $Wiederholen = 0

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

    Else
    sleep(2000)
    send("[Wiederholen]")
    $Wiederholen = 1
    EndIf
    EndFunc

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


    es ist kein Besonders gutes Programm (auch wenn es nicht nur von 3 bis 32 zählen würde) aber ein paar Freunde haben einfach keine lust AutoIt zu lernen

    3 Mal editiert, zuletzt von Zeitriss (11. April 2009 um 13:17)

  • Also, als erstes würde ich den Code "freundlicher" aufbauen...
    Schreibe am besten die Inputs in eine Schleife und räume den Code ein bisschen auf mit Organize Includes und Tidy, dann blickt man da besser durch...

  • Änder mal

    [autoit]

    While 1
    Sleep(1000)
    WEnd

    [/autoit]


    zu

    [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit]
  • Ich würde die Funktionen mit If/Else statt mit If/Elseif schreiben.
    Also so:

    Spoiler anzeigen
    [autoit]


    Func Wiederholen()
    If $Wiederholen = 1 Then
    sleep(2000)
    send("[\Wiederholen]")
    $Wiederholen = 0
    Else
    sleep(2000)
    send("[Wiederholen]")
    $Wiederholen = 1
    EndIf
    EndFunc

    [/autoit]


    Statt so:

    Spoiler anzeigen
    [autoit]

    Func Wiederholen()
    If $Wiederholen = 1 Then
    sleep(2000)
    send("[\Wiederholen]")
    $Wiederholen = 0

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

    ElseIf $Wiederholen = 0 Then
    sleep(2000)
    send("[Wiederholen]")
    $Wiederholen = 1
    EndIf
    EndFunc

    [/autoit]

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Danke aber hat auch jemand eine Idee wie ich das Programm davon überzeuge statt von 3 bis 32 zu zählen das tut was es soll.

    Nicht böse nehmen, aber: wo soll er das tun, was Du möchtest, statt von 3 bis 32 zu zählen, was nicht überzeugt in dem Programm von Dir ??? <--- Oben fehlt das eine oder andwere Komma, das ich hier mit eingebaut habe. :rofl:

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl