Passwort Eingabe!

  • Hi Com ich hab ein Einloggfenster gemacht bei dem man sich ganz normal einloggen kann.sprich Benutzername: Passwort:
    Jetzt will ich aber das statt Buchstaben Sterne oder besser Punkte im input erscheinen !
    Wäre klasse wenn jemand eine Möglichkeit kennt!

    Einmal editiert, zuletzt von WOnder (20. November 2010 um 19:02)

  • [autoit]


    #include <EditConstants.au3>
    GUICtrlCreateInput ( "text", left, top , width , height , $ES_PASSWORD)

    [/autoit]

    Oder du benutzt die inputbox() mit entsprechendem Parameter wie mein Vorposter verlinkt hat.

    Einmal editiert, zuletzt von misterspeed (18. November 2010 um 19:53) aus folgendem Grund: include hinzugefügt

  • O sorry probiere jetzt aus!
    Very nice !!Danke für die Hilfe !!

    Einmal editiert, zuletzt von WOnder (18. November 2010 um 19:46)

  • 1. Es fehlt #include <EditConstants.au3>
    2. Poste den AUtoIt Code hier im Forum, nicht als Anhang.
    3. "kommt bei mir eine Fehlermeldung" Das hilft nicht sehr viel. Du solltest auch den Fehler posten.

  • 1. Es fehlt #include
    2. Poste den AUtoIt Code hier im Forum, nicht als Anhang.
    3. "kommt bei mir eine Fehlermeldung" Das hilft nicht sehr viel. Du solltest auch den Fehler posten.

    Ok, vielen dank für Deine Hilfe. Wegen dem Code im Forum. Ich weiß nicht wie man bei dem Code
    einen Zeilenumbruch macht...

  • Zeilenumbrüche werden doch automatisch übernommen wenn du was ins Text Feld kopierst. Wenn nicht evtl. mal javascript erlauben oder nen anderen Browser verwenden :P
    PS: Sorry dass ich das include oben unterschlagen hatte...

  • Naja... Wenn ich den Code von AutoIt hier in das Forum einfüge, so werden die Zeilenumbrüche nicht mit berechnet...
    *hust* Google Chrome *hust*

  • OK ich hab jetzt ein neues Problem ich will das der Login Button erst dann "klickbar" ist wenn im Benutzernamen Feld UND im PasswortFeld etwas steht!!

    [autoit]

    $Login_Button = GUICtrlCreateButton("Login", 8, 140, 155, 25, $WS_GROUP)
    If $PW_Input <> "" And $BN_Input <>"" Then
    GUICtrlSetState(1, $GUI_DISABLE);weiß nich wie das hier richtig ist aber das funktioniert
    Else
    GuiCtrlSetState(-1,$GUI_DISABLE) ;EDIT DISABLA --> DISABLE
    Endif

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

    Einmal editiert, zuletzt von WOnder (18. November 2010 um 20:20)

  • Poste doch mal das komplette script. Zeile 5 kann jedenfalls nicht funktionieren, da ein Schreibfehler enthalten ist.
    Mal von ab, dass es wohl mindestens einmal Enable lauten müsste.
    Zeile 3 sollte ausserdem entweder -1 lauten oder sich auf das korrekte Control beziehen, also statt -1 einfach die Variable des Buttons verwenden.

  • [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    $Login = GUICreate("Login", 328, 176, 192, 124)
    $BN_Label = GUICtrlCreateLabel("Benutzername :", 8, 48, 120, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "Verdana")
    GUICtrlSetColor(-1, 0x000000)
    $PW_Label = GUICtrlCreateLabel("Passwort :", 48, 80, 80, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "Verdana")
    GUICtrlSetColor(-1, 0x000000)
    $BN_Input = GUICtrlCreateInput("", 144, 44, 145, 24)
    GUICtrlSetFont(-1, 10, 800, 0, "Tekton Pro Ext")
    GUICtrlSetBkColor(-1, 0xE3E3E3)
    $PW_Input = GUICtrlCreateInput("", 144, 76, 145, 24, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    GUICtrlSetFont(-1, 10, 800, 0, "Tekton Pro Ext")
    GUICtrlSetBkColor(-1, 0xE3E3E3)
    $Login_Button = GUICtrlCreateButton("Login", 8, 140, 155, 25, $WS_GROUP)
    If $PW_Input <> "" And $BN_Input <>"" Then
    GUICtrlSetState($Login_Button, $GUI_Enable);so??
    Else
    GuiCtrlSetState($Login_Button,$GUI_DISABLE)
    Endif
    GUICtrlSetCursor (-1, 0)
    $Beenden_Button = GUICtrlCreateButton("Beenden", 165, 140, 155, 25, $WS_GROUP)
    GUICtrlSetCursor (-1, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]


    Weiß niemand wie das geht?!?!?

    3 Mal editiert, zuletzt von WOnder (18. November 2010 um 20:38)

  • Ok dann solltest du auch noch die Funktion:

    [autoit]

    guictrlread()

    [/autoit]


    anschauen, denn derzeit prüfst du nicht den Inhalt der Inputfelder, sondern die ID der Felder.

    Richtig wäre also:

    [autoit]


    ;....
    $Login_Button = GUICtrlCreateButton("Login", 8, 140, 155, 25, $WS_GROUP)
    ;....

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

    ;hier deine while schleife:
    while 1
    ;...

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

    checkinputs() ; funktion aufrufen
    wend

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

    ; und der Teil kommt in eine extra funktion:

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

    func checkinputs()

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

    If guictrlread($PW_Input) <> "" And guictrlread($BN_Input) <>"" Then
    ; hier sollte noch geprüft werden ob button nicht schon aktiviert wurde, damit nicht bei jedem durchlauf der schleife der button status geändert wird. das könnte ein flackern verursachen
    GUICtrlSetState($Login_Button, $GUI_ENABLE)
    Else
    ; hier sollte noch geprüft werden ob button nicht bereits deaktiviert wurde, damit nicht bei jedem durchlauf der schleife der button status geändert wird. das könnte ein flackern verursachen
    GuiCtrlSetState($Login_Button,$GUI_DISABLE)
    Endif

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

    endfunc

    [/autoit]

    Warum eine extra Funktion? Weil du ansonsten nur einmal beim Programmstart den Inhalt der Felder überprüfst (welche natürlich noch leer sind). Dadurch würde dein Button deaktiviert und Eingaben in den Feldern könnten das auch nicht mehr ändern, denn du prüfst den Inhalt ja nicht mehr. Dadurch dass die Funktion in der While Schleife aufgerufen wird prüft dein Programm permanent den Inhalt der Inputfelder und kann dann live den Button aktivieren.

  • Ok genial das funktioniert Danke ... bist der beste!!!
    ok eins noch ^^ wie genau bekommt man das flackern weg?


    Da weiß ich nich wie ich das machen soll!! KAnn ich schréibn If guictrlread($PW_Input) = $GUI_DISABLE Then....?

    2 Mal editiert, zuletzt von WOnder (18. November 2010 um 20:57)

  • Einfach noch eine untergeordnete if Bedingung einbauen, also so:

    [autoit]


    If guictrlread($PW_Input) <> "" And guictrlread($BN_Input) <>"" Then
    if BitAnd(guictrlgetstate($Login_Button),$GUI_ENABLE) <> $GUI_ENABLE then ; wenn button nicht enabled ist, dann enable den Button jetzt, andernfalls passiert nichts...
    GUICtrlSetState($Login_Button, $GUI_ENABLE)
    endif
    else
    ;... das selbe dann auch für den disable zweig
    endif

    [/autoit]

    Achtung hab das nicht geprüft, aber so in etwa ging das denke ich...

    Einmal editiert, zuletzt von misterspeed (18. November 2010 um 21:28)