Input Frage

  • hallo
    bin noch net so lange an auto it
    eigentlich erst 2tage :whistling:
    naja also ich habe mir eine art macro erstellt
    am anfang kommt ein kleines menu wo mann benutzer daten
    eingeben soll
    diese angaben soll das script späder übernehmen
    wie mache ich das??
    wie lautet der befehl
    auf wunsch lade ich gerne die source hoch
    mfg langi890

  • Du kannst die eingegeben Daten mit

    GuiCtrlRead($INPUT) rauslesen, alternativ auch mit ControlGetText() und in eine Variable speichern.

    Wenn man den Quellcode vor sich hat, kann man genauere Tipps geben ;)

    Schau in der Hilfe nach beiden Befehlen, die Beispiele erläutern die Funktionsweise eigentlich recht gut.

    Gruß

    Prajoss

    "Never touch a running System!"

  • Hi, und willkommen im Forum :)

    auf wunsch lade ich gerne die source hoch

    Das wäre vielleicht ganz sinnvoll ^^. 1. mal weis man dann, du hast dich wenigstens bemüht selber etwas zu machen und wir wissen auch dann erst was du meinst.
    Also lade den Quelltext hoch und erkläre anhand des Quelltextes was du machen willst. Einen wirklichen Befehl dazu gibt es denke ich mal nicht, außer du meinst Variablen :D.

  • danke
    für die schnelle antwort
    hetz habe ich noch ne frage wie kann ich
    machen das er die input daten dann nochmal schreibt
    so die art (ich weis es stimmt nicht aber es beschreibt es sehr gut ;) )

    Send ("$input")

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Process.au3>
    Opt('MustDeclareVars', 1)

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

    _Main()

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

    Func _Main()
    Local $filemenu, $fileitem, $recentfilesmenu, $separator1
    Local $exititem, $helpmenu, $aboutitem, $okbutton, $cancelbutton
    Local $msg, $file, $Name, $Passwort
    #forceref $separator1

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

    GUICreate("GUI menu", 300, 200)


    $filemenu = GUICtrlCreateMenu("File")
    $fileitem = GUICtrlCreateMenuItem("Open...", $filemenu)
    $recentfilesmenu = GUICtrlCreateMenu("Recent Files", $filemenu)
    $separator1 = GUICtrlCreateMenuItem("", $filemenu)
    $exititem = GUICtrlCreateMenuItem("Exit", $filemenu)
    $helpmenu = GUICtrlCreateMenu("?")
    $aboutitem = GUICtrlCreateMenuItem("About", $helpmenu)
    $Passwort = GUICtrlCreateInput( "Passwort", 170, 80, 90, 20)
    $Name = GUICtrlCreateInput("ID", 170, 60, 90, 20)
    $okbutton = GUICtrlCreateButton("AUTOLOGIN", 50, 50, 90, 40)

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

    $cancelbutton = GUICtrlCreateButton("Cancel", 90, 100, 40, 20)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()

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

    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton
    ExitLoop

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

    Case $msg = $fileitem
    $file = FileOpenDialog("Choose file...", @TempDir, "All (*.*)")
    If @error <> 1 Then GUICtrlCreateMenuItem($file, $recentfilesmenu)

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

    Case $msg = $exititem

    ExitLoop

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

    Case $msg = $okbutton

    Run ("SRO_AUTO")
    Sleep (3000)
    MouseClick ("left" , 473,177 )
    Run ("silkroad.exe")
    Sleep (2500)
    MouseClick ( "left" , 879,539 )
    Sleep (12000)
    MouseClick ("left")

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

    ExitLoop

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

    Case $msg = $aboutitem
    MsgBox(0, "About", "GUI Menu Test")
    EndSelect
    WEnd

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

    GUIDelete()

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

    Exit
    EndFunc ;==>_Main

    [/autoit]

    hier mein source nach dem letzen "mouseclick ("left") soll er die daten eingeben
    mfg langi

  • was soll er wohin schreiben??

    wenn du die Inputs auslesen willst geht es über GUICtrlRead($INPUT), in deinem Beispiel:

    $auslesen = GUICtrlRead($NAme)
    MsgBox(0, "Test", $auslesen)

    oder gleich

    MsgBox(0, "Test", GUICtrlRead($auslesen))

    und wenn du sie in ein Programm eintippen lassen willst, benötigst du dann entweder

    Send($auslesen) oder ControlSendText("Programmname", "", ID, $auslesen)

    Gruß

    Prajoss

    "Never touch a running System!"

  • Meinst Du so ? allerdings würde ich zumindest den Teil mit mit den Mousclick Befehlen ersetzen gegen ControlClick...


    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Process.au3>
    Opt('MustDeclareVars', 1)

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

    _Main()

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

    Func _Main()
    Local $filemenu, $fileitem, $recentfilesmenu, $separator1
    Local $exititem, $helpmenu, $aboutitem, $okbutton, $cancelbutton
    Local $msg, $file, $Name, $Passwort
    #forceref $separator1

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

    GUICreate("GUI menu", 300, 200)


    $filemenu = GUICtrlCreateMenu("File")
    $fileitem = GUICtrlCreateMenuItem("Open...", $filemenu)
    $recentfilesmenu = GUICtrlCreateMenu("Recent Files", $filemenu)
    $separator1 = GUICtrlCreateMenuItem("", $filemenu)
    $exititem = GUICtrlCreateMenuItem("Exit", $filemenu)
    $helpmenu = GUICtrlCreateMenu("?")
    $aboutitem = GUICtrlCreateMenuItem("About", $helpmenu)
    $Passwort = GUICtrlCreateInput( "Passwort", 170, 80, 90, 20)
    $Name = GUICtrlCreateInput("ID", 170, 60, 90, 20)
    $okbutton = GUICtrlCreateButton("AUTOLOGIN", 50, 50, 90, 40)

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

    $cancelbutton = GUICtrlCreateButton("Cancel", 90, 100, 40, 20)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()

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

    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton
    ExitLoop

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

    Case $msg = $fileitem
    $file = FileOpenDialog("Choose file...", @TempDir, "All (*.*)")
    If @error <> 1 Then GUICtrlCreateMenuItem($file, $recentfilesmenu)

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

    Case $msg = $exititem

    ExitLoop

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

    Case $msg = $okbutton

    $pwd = GUICtrlRead($Passwort)
    $name = GUICtrlRead($Name)

    ;sehr unegschickt
    Run ("SRO_AUTO")
    Sleep (3000)
    MouseClick ("left" , 473,177 )
    Run ("silkroad.exe")
    Sleep (2500)
    MouseClick ( "left" , 879,539 )
    Sleep (12000)
    MouseClick ("left")
    ;-------

    Send($pwd)
    Send("{TAB}")
    Send($name)

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

    ExitLoop

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

    Case $msg = $aboutitem
    MsgBox(0, "About", "GUI Menu Test")
    EndSelect
    WEnd

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

    GUIDelete()

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

    Exit
    EndFunc ;==>_Main

    [/autoit]

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Bei dir bringt er
    bei zeile 50und 51 nen error
    variable has used without declared

    sry das ich so fragen stell....
    is mein erstes AutoIT projekt :love:

  • Dieser Fehler besagt, dass du eine Variable verwendest, die noch nicht deklariert ist..

    In diesem Fall sind es: $pwd und $name..

    Du musst sie noch bei deinen deklarierten Variablen dazuschreiben:

    Local $pwd, $name

    Gruß

    Prajoss

    "Never touch a running System!"

  • oder du änderst das hier:

    [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit]


    in

    [autoit]

    Opt('MustDeclareVars', 0)

    [/autoit]


    oder nimmst die Zeile ganz raus...

    Zitat


    MustDeclareVars Wenn diese Option genutzt wird müssen alle Variablen deklariert werden mit Dim, Local oder Global bevor sie verwendet werden können - beseitigt die Möglichkeit von Bugs durch Schreibfehler in Variablen.
    1 = Variable muß deklariert werden
    0 = Variable muß nicht deklariert werden (Standard)

    übrigens wäre statt den Sleep befehlen

    [autoit]

    WinWait ( "title" [, "text" [, timeout]] )

    [/autoit]

    geschickter.

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---