variablen "übertragen"

  • moin
    ich hab mir mit Koda FormDesigner ( falls es jmd kennt :D) ein Fenster erstellt wo ich auch 2 Inputboxen rein gemacht hab. Durch nen Button startet dann ne Funktion, welche die variable ( $Input1 ) aus der Inputbox in ein Feld eingibt.

    autoit.de/wcf/attachment/7183/

    so jetzt dazu die fragen:
    1. ist es überhaupt möglich dies mit variablen zu lösen oda wäre es besser dazu i-ne andere funktion zu nehmen?
    1.2 wie "verbind" ich die variablen dass der text der in die inputbox eingetragen wird auch dann später durch die funktion in den Editor eingegeben wird?
    2. was ist überhaupt es problem dabei, weil er immer nur 5 und 6 (bei mir) in den Editor eingibt obwohl ich was ganz anderes in die Inputbox eingegeben hab?

  • Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.2.0
    Author: TeiMoe

    Script Function:
    Template AutoIt script.

    #ce ----------------------------------------------------------------------------

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

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=E:\Programme\Programmieren\Koda FormDesigner\Forms\Metin2 Log-in.kxf
    $Form1 = GUICreate("Form1", 647, 476, 192, 124)
    $Id = GUICtrlCreateLabel("Gebe hier deinen Accountnamen ein", 56, 96, 177, 17)
    $Label1 = GUICtrlCreateLabel("Gebe hier dein Passwort ein", 56, 144, 136, 17)
    $Input1 = GUICtrlCreateInput("", 304, 96, 121, 21)
    $Input2 = GUICtrlCreateInput("", 304, 144, 121, 21, $ES_PASSWORD)
    $Los = GUICtrlCreateButton("Los!", 264, 376, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Los
    _Func1()
    EndSwitch
    WEnd

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

    Func _Func1()
    Run("notepad.exe")
    WinWaitActive("Unbenannt - Editor")
    ControlSetText("Unbenannt - Editor", "", "Edit1", GUICtrlRead($Input1) & @CRLF & GUICtrlRead($Input2))
    Exit
    EndFunc ;==>_Func1

    [/autoit]
  • also:
    $Input1 ist nicht das was du in dem Inputfeld eingibst, sondern das Inputfeld selbst. Besser gesagt eine Identifikationsnummer (Control-ID). Um den Wert auszulesen, der in dem Input-Feld steht, musst du GUICtrlRead($Input1) verwenden.

    Um das Feld "anzusprechen", musst du die Control-ID natürlich irgendwoe speichern. Du kommst also um Variablen nicht herum. Im prinzip könntest du das auch über Dateien (FileWrite/FileRead;IniWrite/IniRead) regeln, aber das wäre total ineffizient, weil langsam.

    so müsste dein Script laufen (ungetestet):

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.2.0
    Author: TeiMoe

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=E:\Programme\Programmieren\Koda FormDesigner\Forms\Metin2 Log-in.kxf
    $Form1 = GUICreate("Form1", 647, 476, 192, 124)
    $Id = GUICtrlCreateLabel("Gebe hier deinen Accountnamen ein", 56, 96, 177, 17)
    $Label1 = GUICtrlCreateLabel("Gebe hier dein Passwort ein", 56, 144, 136, 17)
    $Input1 = GUICtrlCreateInput("", 304, 96, 121, 21)
    $Input2 = GUICtrlCreateInput("", 304, 144, 121, 21, $ES_PASSWORD)
    $Los = GUICtrlCreateButton("Los!", 264, 376, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Los
    _Func1 ()
    EndSwitch
    WEnd

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

    Func _Func1 ()
    Run("notepad.exe")
    WinWaitActive("Unbenannt - Editor")
    Sleep(1000)
    Send(GUICtrlRead($Input1), 1)
    Send("{Enter}")
    Send(GUICtrlRead($Input2), 1)
    Exit
    EndFunc

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