Absoluter neuling benötigt Hilfe

  • Hallo,

    ich hoffe Ihr könnt mir Helfen. ich will eigentlich folgendes ganz einfaches machen.

    Ich möchte einen Text in ein Fenster schreiben, dann eine Combobox erscheinen lassen, darin etwas auswählen, und dann den text weiterschreiben lassen mit den geänderten informationen aus der Combobox. Ich kann zwar eine Combobox in einer Windows Form erscheinen lassen, allerdings habe ich keine Ahnung wie das Fenster (außer mit Exit) wieder weg geht und mein Hauptskript dann weiterläuft.

    Ich würde mir einfach einen Funktionsaufruf wünschen, wie eine Inputbox nur mit einer Combobox.

    Also wie folgt:

    Send("Bitte wähle einen Wochentag aus")

    ***** Combobox mit allen Wochentagen soll erscheinen *******
    ***** Auswahl wurde getroffen ******

    Send(" Dein Ausgewählter Wochentag ist....")

    Danke an alle....

    Rails

    • Offizieller Beitrag

    Habe schnell mal eine Funktion geschrieben:

    Spoiler anzeigen
    [autoit]


    $sWeekday = _WeekdaySelectBox()
    ConsoleWrite($sWeekday & @CR)

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

    Func _WeekdaySelectBox($iLeft = -1, $iTop = -1, $hParent = 0)
    Local $sWeekdays = 'Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag'
    Local $hGui, $hCombo, $hOk, $iOpt, $msg, $sRet
    $iOpt = Opt('GUIOnEventMode', 0)
    $hGui = GUICreate('WeekdaySelectBox', 160, 90, $iLeft, $iTop, BitOR(0x00800000, 0x80000000), Default, $hParent)
    GUISetBkColor(0xBBBBBB, $hGui)
    GUICtrlCreateLabel('Wochentag auswählen:', 10, 10, 140, 20)
    $hCombo = GUICtrlCreateCombo('', 10, 30, 140, 25, 0x0003)
    GUICtrlSetData(-1, $sWeekdays, StringLeft($sWeekdays, 6))
    $hOk = GUICtrlCreateButton('Ok', 100, 60, 50, 25)
    GUISetState()
    Do
    $msg = GUIGetMsg()
    Until $msg = $hOk Or $msg = $hCombo
    $sRet = GUICtrlRead($hCombo)
    GUIDelete($hGui)
    Opt('GUIOnEventMode', $iOpt)
    Return $sRet
    EndFunc

    [/autoit]
  • So?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Global $sText

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

    Run("Notepad.exe")
    WinWaitActive("[CLASS:Notepad]")
    Send("Bitte wähle einen Wochentag aus!", 1)
    Sleep(500)
    $sText = _GetWDay()
    Send("{ENTER}")
    Send("Dein ausgewählter Wochentag ist " & $sText & ".", 1)

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

    Func _GetWDay()
    Local $sWDay

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

    $hGui = GUICreate("Auswahl", 200, 60)
    $hCombo = GUICtrlCreateCombo("", 10, 20, 90, 20)
    GUICtrlSetData(-1, "|Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag")
    $hOK = GUICtrlCreateButton("OK", 120, 17, 60, 25)
    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $hOK
    If GUICtrlRead($hCombo) <> "" Then
    $sWDay = GUICtrlRead($hCombo)
    GUIDelete($hGui)
    Return $sWDay
    Else
    MsgBox(48, "Fehler", "Bitte wähle einen Wochentag aus!", 0, $hGui)
    GUICtrlSetState($hCombo, $GUI_FOCUS)
    EndIf
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    Edit: Mist Oscar war schneller. Man sollte doch bevor man schreibt den Thread aktualisieren ^^.

  • Hallo Rails,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deiner Combo-Box, mach es doch so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    $sWT = "Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Sonnabend|Sonntg"
    $aWT = StringSplit($sWT,"|")

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

    $idGui = GUICreate("Wochentag auswählen", 150,50)
    $idCombo = GUICtrlCreateCombo("",5,5,140)
    for $i = 1 to $aWT[0]
    GUICtrlSetData($idCombo,$aWT[$i])
    Next
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $idCombo
    $sWahl =GUICtrlRead($idCombo)
    MyFunc($sWahl)
    Exit
    EndSwitch
    WEnd

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

    Func MyFunc($sTag)
    MsgBox(0,"ausgewählter Wochentag",$sTag); mit eigenen Funktionen ersetzen
    EndFunc

    [/autoit]

    mfg autoBert