Array wäre sicher die Lösung

  • Hallo Zusammen

    Sehe ein dass dies sicher nicht der Optimale weg ist aber wie ich ein Array hierzu erstellen kann
    ist mir leider noch nicht ganz eingedrungen :-).

    Möchte den ausgewählten Wert ""$UserName" & "$read"" weiter verwenden und diesen im zweiten teil
    des scripts Implementieren.

    Währe um Hilfe wirklich angewiesen. Danke 
    MC

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    Opt("GUIOnEventMode", 1)
    GUICreate("AD - User and Group Membership - Reader", 380, 100)
    GUICtrlCreateLabel("Active Directory - UserName", 40, 5, 180, 20)
    $UserName = GuiCtrlCreateInput("<UserName>", 40, 25, 150, 25)
    GUICtrlCreateLabel("Active Directory - Context location", 40, 55, 220, 20)
    $combo = GUICtrlCreateCombo("", 40, 70)
    GUICtrlSetData($combo,"Intern|Extern|Schulung|Technisch|Temporaer|Temp|Testusers|Musteruser|Allgemeineuser|Alle|Keine|Stop|")
    ; OU=Intern| OU=Extern|OU=Schulungsbenutzer|OU=Technische Accounts|OU=Temporaer Extern|OU=Temporaer Intern|Testbenutzer|
    GUICtrlSetOnEvent($combo, "_comboread")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    GUISetState()
    While 1
    WEnd
    Func _comboread()
    $read = GUICtrlRead($combo)
    If $read = "Intern" Then MsgBox(0, "Combobox", $read)
    If $read = "Extern" Then MsgBox(0, "Combobox", $read)
    If $read = "Schulung" Then MsgBox(0, "Combobox", $read)
    If $read = "Technisch" Then MsgBox(0, "Combobox", $read)
    If $read = "Temporaer" Then MsgBox(0, "Combobox", $read)
    If $read = "Temp" Then MsgBox(0, "Combobox", $read,)
    If $read = "Testusers" Then MsgBox(0, "Combobox", $read)
    If $read = "Musteruser" Then MsgBox(0, "Combobox", $read)
    If $read = "Allgemeineuser" Then MsgBox(0, "Combobox", $read)
    If $read = "Alle" Then MsgBox(0, "Combobox", $read)
    If $read = "Keine" Then MsgBox(0, "Combobox", $read)
    If $read = "Stop" Then MsgBox(0, "Combobox", $read)

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

    EndFunc
    Func _exit()
    Exit
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von mauric (3. Februar 2010 um 17:17)

  • 'So vllt?&quot;
    [autoit]

    #include <GUIConstants.au3>
    Opt("GUIOnEventMode", 1)
    GUICreate("AD - User and Group Membership - Reader", 380, 100)
    GUICtrlCreateLabel("Active Directory - UserName", 40, 5, 180, 20)
    $UserName = GUICtrlCreateInput("<UserName>", 40, 25, 150, 25)
    GUICtrlCreateLabel("Active Directory - Context location", 40, 55, 220, 20)
    $combo = GUICtrlCreateCombo("", 40, 70)
    GUICtrlSetData($combo, "Intern|Extern|Schulung|Technisch|Temporaer|Temp|Testusers|Musteruser|Allgemeineuser|Alle|Keine|Stop|")
    ; OU=Intern| OU=Extern|OU=Schulungsbenutzer|OU=Technische Accounts|OU=Temporaer Extern|OU=Temporaer Intern|Testbenutzer|
    GUICtrlSetOnEvent($combo, "_comboread")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
    GUISetState()

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

    Global $sRead

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

    While 1 * Sleep(10)

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

    WEnd

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

    Func _comboread()
    $sSplit = "Intern|Extern|Schulung|Technisch|Temporaer|Temp|Testusers|Musteruser|Allgemeineuser|Alle|Keine|Stop"
    $aSplit = StringSplit($sSplit, "|")
    For $i = 1 To $aSplit[0]
    If GUICtrlRead($combo) = $aSplit[$i] Then
    $sRead = GUICtrlRead($combo)
    ConsoleWrite($sRead & @CRLF)
    Return
    EndIf
    Next
    EndFunc ;==>_comboread

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

    Func _exit()
    Exit
    EndFunc ;==>_exit

    [/autoit]

    Warum musst du überhaupt prüfen, was in der Combo steht?
    Sicher, dass du nicht einfach das hier suchst:

    [autoit]

    $combo = GUICtrlCreateCombo("", 40, 70,-1,-1,0x0003)

    [/autoit]


    ?(

  • Danke SEuBo der schnellen Antwort!,
    habe mich doch für die ausführlichere Variante entschieden.


    Habe noch im Code angepasst dass als Standard immer "Intern" gewählt wird,
    nun würde ich gern nach eingabe des <UserName> mit der Taste "Enter" oder
    einem "Ok" Button [am besten beides] die Variabel im Beispiel "$sRead" weitergeben.

    Danke Euch vielmals

    MC

  • Meinst du das vielleicht eher so:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    GUICreate("AD - User and Group Membership - Reader", 380, 100)
    GUICtrlCreateLabel("Active Directory - UserName", 40, 5, 180, 20)
    $hUserName = GUICtrlCreateInput("<UserName>", 40, 25, 150, 25)
    GUICtrlCreateLabel("Active Directory - Context location", 40, 55, 220, 20)
    $hCombo = GUICtrlCreateCombo("Intern", 40, 70, -1, -1, 0x003)
    GUICtrlSetData(-1, "Extern|Schulung|Technisch|Temporaer|Temp|Testusers|Musteruser|Allgemeineuser|Alle|Keine|Stop")
    ; OU=Intern| OU=Extern|OU=Schulungsbenutzer|OU=Technische Accounts|OU=Temporaer Extern|OU=Temporaer Intern|Testbenutzer|
    $hButton = GUICtrlCreateButton("OK", 270, 68, 100, 24)

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

    GUISetState()

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

    Global $sRead

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

    While 1 * Sleep(10)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hUserName, $hButton
    _DeineFunktion(GUICtrlRead($hCombo), GUICtrlRead($hUserName))
    EndSwitch
    WEnd

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

    Func _DeineFunktion($sName, $sLocation)
    MsgBox(0, "", "An deine Funktion wurde folgendes übergeben: " & @CRLF & _
    "Name: " & $sName & @CRLF & _
    "Location: " & $sLocation)
    EndFunc ;==>_DeineFunktion

    [/autoit]
  • Super SEuBo

    Bitte, Aber wie hast du die [Enter] als Aktiv gesetzt [sobald Username geschrieben wurde ist Enter Aktiv],
    Ich muss in meinem Beispiel mit [TAB] bis zum OK Springen.

    Dank dir vielmals
    MC

  • nein musst du nicht. sobald du den username änderst und enter drückst wird es übergeben. Probier es aus.
    Ansonsten änder mal

    [autoit]

    $hButton = GUICtrlCreateButton("OK", 270, 68, 100, 24)

    [/autoit]


    in

    [autoit]

    $hButton = GUICtrlCreateButton("OK", 270, 68, 100, 24,0x0001)

    [/autoit]
  • Hallo SEuBo
    Deine vermutung lag richtig es war genau dieser einzeiler.


    [autoit]


    $hButton = GUICtrlCreateButton("OK", 270, 68, 100, 24, 0x0001)

    [/autoit]

    Danke dir Vielmals jetzt klappts auch bei mir richtig!.

    MC

  • kurze Frage an SEuBo:
    es reicht doch wenn man

    [autoit]

    Case $hButton

    [/autoit]


    anstatt

    [autoit]

    Case $hUserName, $hButton

    [/autoit]


    schreibt.
    Oder nicht?