Abfragebox - eingabe danach in Zwischenspeicher

  • Ohha...
    damit hab ich noch nie gearbeitet... wie muss ich da was eingeben für das was ich machen möchte?

    also sollte ein fenster sein mit nem text und halt ein "OK" button ein "ABBRECHEN" button und dann halt ein textfeld wo so etwas eingegeben werden kann... mit mehreren absätzen etc...

    wie sehen die befehle dann aus... hab noch nie iene GUI gemacht...
    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • [autoit]

    Func _EditBox($sTitle,$sText="",$sDefault="")
    $hForm=GUICreate($sTitle,400,320)
    GUICtrlCreateLabel($sText,5,5)
    $hEdit=GUICtrlCreateEdit($sDefault,5,30,390,250)
    $hOk=GUICtrlCreateButton("Ok",100,285,100,30)
    $hCancel=GUICtrlCreateButton("Abbrechen",200,285,100,30)
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $hCancel
    SetError(1)
    Return ""
    Case $GUI_EVENT_CLOSE
    SetError(1)
    Return ""
    Case $hOk
    Return GUICtrlRead($hEdit)
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • ?

    ich blicke da ehrlichgesagt nicht durch...

    wenn ich ein script so mache:

    [autoit]

    While 1
    HotKeySet ("+a", "_EditBox")
    WEnd
    Func _EditBox ($sTitle,$sText="",$sDefault="")
    $hForm=GUICreate($sTitle,400,320)
    GUICtrlCreateLabel($sText,5,5)
    $hEdit=GUICtrlCreateEdit($sDefault,5,30,390,250)
    $hOk=GUICtrlCreateButton("Ok",100,285,100,30)
    $hCancel=GUICtrlCreateButton("Abbrechen",200,285,100,30)
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $hCancel
    SetError(1)
    Return ""
    Case $GUI_EVENT_CLOSE
    SetError(1)
    Return ""
    Case $hOk
    Return GUICtrlRead($hEdit)
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    dann gibt er direkt einen Error in Line 5 aus... ich denke ich muss da noch einiges abändern nur weiß ich nicht für was das alles steht...

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • [autoit]

    While 1
    HotKeySet ("+a", "_Edit")
    WEnd
    Func _Edit()
    _EditBox("Titel")
    EndFunc
    Func _EditBox ($sTitle,$sText="",$sDefault="")
    $hForm=GUICreate($sTitle,400,320)
    GUICtrlCreateLabel($sText,5,5)
    $hEdit=GUICtrlCreateEdit($sDefault,5,30,390,250)
    $hOk=GUICtrlCreateButton("Ok",100,285,100,30)
    $hCancel=GUICtrlCreateButton("Abbrechen",200,285,100,30)
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $hCancel
    SetError(1)
    Return ""
    Case $GUI_EVENT_CLOSE
    SetError(1)
    Return ""
    Case $hOk
    Return GUICtrlRead($hEdit)
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Du musst einfach folgendes an den anfang setzen

    [autoit]

    #include <GUIConstants.au3>

    [/autoit]
  • Okay... die box sieht gut aus..

    nur kann ich damit nix machen außer etwas einfügen...
    man kann das X nicht klicken man kann Abbrechen nciht Klicken und man kann OK nicht klicken....

    bei einem Klick auf OK sollte eigentlich das eingegebene sich in den Zwischenspeicher schieben...

    nur da tut sich ja nix..

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • Also mein script sieht nun so aus

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    While 1
    HotKeySet ("+a", "_Edit")
    WEnd
    Func _Edit()
    ClipPut(_EditBox("Titel"))
    EndFunc
    Func _EditBox ($sTitle,$sText="",$sDefault="")
    $hForm=GUICreate($sTitle,400,320)
    GUICtrlCreateLabel($sText,5,5)
    $hEdit=GUICtrlCreateEdit($sDefault,5,30,390,250)
    $hOk=GUICtrlCreateButton("Ok",100,285,100,30)
    $hCancel=GUICtrlCreateButton("Abbrechen",200,285,100,30)
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $hCancel
    SetError(1)
    Return ""
    Case $GUI_EVENT_CLOSE
    SetError(1)
    Return ""
    Case $hOk
    Return GUICtrlRead($hEdit)
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    aber es funkt wirklich = 0...
    Alt+F4, OK, Abbrechen, X, alles das funktioniert bei mir nicht....

    was mach ich falsch?

    Kleiner AutoIt Lehrling :)

  • Hä???
    Check ich auch nicht! Was ist da falsch??? Ich glaub ich seh den Wald vor lauter Bäumen nicht!!!
    Msg ist zu Beginn einmal -11, beim ersten Klick auf einen Button -7, sonst immer null... ?(

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

    • Offizieller Beitrag

    Probier es mal so :

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    HotKeySet("+a", "_Edit")
    While 1
    Sleep(50)
    WEnd
    Func _Edit()
    HotKeySet("+a")
    $Temp = _EditBox("Titel", "", "")
    ClipPut($Temp)
    HotKeySet("+a", "_Edit")
    EndFunc ;==>_Edit
    Func _EditBox($sTitle, $sText = "", $sDefault = "")
    Local $hForm, $hEdit, $hOK, $hCancel, $msg

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

    $hForm = GUICreate($sTitle, 400, 320)
    GUICtrlCreateLabel($sText, 5, 5)
    $hEdit = GUICtrlCreateEdit($sDefault, 5, 30, 390, 250)
    $hOK = GUICtrlCreateButton("Ok", 100, 285, 100, 30)
    $hCancel = GUICtrlCreateButton("Abbrechen", 200, 285, 100, 30)
    GUISetState()
    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case $hCancel
    GUIDelete($hForm)
    Return ""
    Case $GUI_EVENT_CLOSE
    GUIDelete($hForm)
    Return ""
    Case $hOK
    $Return = GUICtrlRead($hEdit)
    GUIDelete($hForm)
    Return $Return
    EndSwitch
    WEnd
    EndFunc ;==>_EditBox

    [/autoit]


    Edit wenn die Funktion Ausgefürt wird, sollte der Hotkey deaktiviert werden. Habe das mal in meinem Code angepaßt .

  • Ahh, ich sehs Problem... Das GUIDelete. Ich war schon am verzweifeln...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    HotKeySet ("+a", "_Edit")
    While 1
    sleep(1000)
    WEnd
    Func _Edit()
    HotKeySet ("+a")
    ClipPut(_EditBox("Titel"))
    HotKeySet ("+a", "_Edit")
    EndFunc
    Func _EditBox($sTitle,$sText="",$sDefault="")
    ;~ Local $sText="",$sTitle="",$sDefault=""
    $hForm=GUICreate($sTitle,400,320)
    GUICtrlCreateLabel($sText,5,5)
    $hEdit=GUICtrlCreateEdit($sDefault,5,30,390,250)
    $hOk=GUICtrlCreateButton("Ok",100,285,100,30)
    $hCancel=GUICtrlCreateButton("Abbrechen",200,285,100,30)
    GUISetState(@SW_SHOW,$hForm)
    While True
    $msg=GUIGetMsg()
    Switch $msg
    Case $hCancel
    SetError(1)
    GUIDelete()
    Return ""
    ExitLoop
    Case $GUI_EVENT_CLOSE
    SetError(1)
    GUIDelete()
    Return ""
    ExitLoop
    Case $hOk
    $tmp=GUICtrlRead($hEdit)
    GUIDelete()
    Return $tmp
    ExitLoop
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

    • Offizieller Beitrag

    Deine ExitLoop´s Und SetErrors sind absolut unnötig 8)

  • juhu genau das was ich gesucht habe :) klappt hervoragend :)

    wenn ich nichtmehr weiterkomm mach ich nen neues thema auf :)

    das einzige was ich noch machen wollt is... die Pfade zu den zu öffnenen programmen auslesen könnte...

    also wie schon oben beschrieben...
    eine txt datei mit:
    Program1:
    Pfad dazu
    Programm2:
    Pfad dazu

    etc.

    und dann bei ShellExecute (programm.exe, "Pfad dazu aus txt")

    würde das gehen?

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • okay da habe ich erstmal was zu tun :)

    ich versuch jetzt mal hinzubekommen das er line 2 line 4 und line 6 ausliest an den richtigen stellen bzw. ganz am anfang festlegt...

    und einmal eine exe erstellen die diese ini erstellt ... mit einer eigen erstellten GUI... das wird mich dann erstmal zu schaffen machen :)

    fals ich prbleme hab melde ich mich :D
    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • Hey hab wiedermal ein Problem :)

    also... ich will den 1. step automatisch ausführen lassen ohne einen Hotkey...

    dh.
    Befehle....
    [...]
    Befehle Ende...

    While 1
    HOTEKEYS
    Wend

    Funktionen


    aber wenn ich einen Hotkey drücke fängt er i wie wieder von komplett oben an und führt den ersten befehl wieder aus... wie kann ich das umgehen? das er das nur beim starten startet und beim hotkey drücken nicht?

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)