Die Community zu .NET und Classic VB.
Menü

Tipp-Upload: VB 5/6 0058: Selbst erstellte PasswordBox

 von 

Über den Tipp  

Dieser Tippvorschlag ist noch unbewertet.

Der Vorschlag ist in den folgenden Kategorien zu finden:

  • Fenster
  • Sonstiges

Dem Tippvorschlag wurden folgende Schlüsselwörter zugeordnet:
Passwort, Passwordbox, password, InputBox, PasswordChar

Der Vorschlag wurde erstellt am: 25.02.2008 15:25.
Die letzte Aktualisierung erfolgte am 15.11.2019 08:51.

Zurück zur Übersicht

Beschreibung  

Um ein Passwort abzufragen würde die Funktionalität einer normalen InputBox, genügen, wenn sie das zusätzliches Feature hätte, daß das Passwort verdeckt eingegeben werden kann, damit man bei der Eingabe nur ein Ersatzzeichen sieht, wie zum Beispiel das Asterisc-Zeichen bzw das Stern-Zeichen "*".
Ein TextBox-Control bietet diese Möglichkeit mit dem Property PasswordChar.
Man könnte also entweder die Funktion InputBox (bzw das darauffolgende Fenster) verändern, oder aber man könnte so eine InputBox selber designen, das ergibt zusätzlich die Möglichkeit viele andere Parameter der verwendeten Controls zu verändern, wie z.B.:
* die Farbe der Buttons
* oder der Form,
* ein Icon auf das Formular legen etc.
* oder aber auch das Passwort bereits bei der Eingabe zu verschlüsseln. (wird hier nicht behandelt)

Schwierigkeitsgrad

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

Download:

Download des Beispielprojektes [2,99 KB]

' Dieser Source stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!

' ------------- Anfang Projektdatei Projekt1.vbp -------------

' --- Anfang Formular "FrmInputBox" alias FrmInputBox.frm  ---

' Steuerelement: Beschriftungsfeld "LblPrompt"
' Steuerelement: Schaltfläche "BtnOK"
' Steuerelement: Textfeld "Text1"
' Steuerelement: Schaltfläche "BtnCancel"
' Steuerelement: Schaltfläche "BtnHelp"

Option Explicit

Private m_InputText As String

Public StrHelpFile  As String

Public Function ShowGetString() As String

    Me.Show vbModal
    ShowGetString = m_InputText

End Function

Private Sub BtnHelp_Click()

    Shell StrHelpFile & " " & Me.HelpContextID

End Sub

Private Sub Form_Load()

    Dim L As Single, T As Single, W As Single, H As Single

    BtnOK.Caption = "OK"
    BtnOK.Default = True
    BtnCancel.Caption = "Abbrechen"
    BtnHelp.Caption = "Hilfe"
    LblPrompt.AutoSize = True
    Me.ScaleMode = 3
    Me.Width = 371 * Screen.TwipsPerPixelX
    Me.Height = 152 * Screen.TwipsPerPixelY

    Call LblPrompt.Move(9, 10)

    L = 288: T = 10: W = 66: H = 23

    Call BtnOK.Move(L, T, W, H):     T = T + 3 + H
    Call BtnCancel.Move(L, T, W, H): T = T + 3 + H
    Call BtnHelp.Move(L, T, W, H)

    L = 9: T = 91: W = 345: H = 20

    Call Text1.Move(L, T, W, H)

End Sub

Private Sub BtnCancel_Click()

    m_InputText = vbNullString
    Unload Me

End Sub

Private Sub BtnOK_Click()

    m_InputText = Text1.Text
    Unload Me

End Sub

' ---- Ende Formular "FrmInputBox" alias FrmInputBox.frm  ----

' --------- Anfang Modul "Module1" alias Module1.bas ---------

Option Explicit

' Folgende Formulare und Controls werden verwendet:
' =================================================
' Formular: FrmInputBox
' mit den Controls:
' Label:         LblPrompt
' TextBox:       Text1
' CommandButton: BtnOK
' CommandButton: BtnCancel
' CommandButton: BtnHelp
' Formular: Form1
' mit den Controls:
' CommandButton: Command1
' CommandButton: Command2
'
Public Function PassWordBox( _
    ByVal Prompt As String, _
    Optional ByVal Title As String, _
    Optional ByVal Default As String, _
    Optional ByVal XPos As Long, _
    Optional ByVal YPos As Long, _
    Optional ByVal HelpFile As String, _
    Optional ByVal Context As Long _
) As String

    With New FrmInputBox
        .Text1.PasswordChar = "*"
        .LblPrompt = Prompt
        .Caption = Title
        .Text1.Text = Default
        .BorderStyle = 1
        .StrHelpFile = HelpFile
        .HelpContextID = Context

        If XPos <= 0 And YPos <= 0 Then
            XPos = (Screen.Width - .Width) / 2
            YPos = (Screen.Height - .Height) / 2 - .Height
        End If

        If Len(HelpFile) = 0 Then .BtnHelp.Visible = False

        Call .Move(XPos, YPos)

        PassWordBox = .ShowGetString
    End With

End Function

' ---------- Ende Modul "Module1" alias Module1.bas ----------

' --------- Anfang Formular "Form1" alias Form1.frm  ---------

' Steuerelement: Schaltfläche "Command2"
' Steuerelement: Schaltfläche "Command1"

Option Explicit

Private Sub Command1_Click()

    Call ShowPWBox

End Sub

Private Sub Command2_Click()

    Call ShowPWBox(True)

End Sub

Private Sub ShowPWBox(Optional bolPWBox As Boolean)

    Dim s As String

    If bolPWBox Then
        s = PassWordBox("Geben Sie das Passwort ein:", "Passwort", "Administrator")
    Else
        s = InputBox("Geben Sie das Passwort ein:", "Passwort", "Administrator")
    End If

    If Len(s) > 0 Then
        MsgBox "Das eingegebene Passwort lautet: " & s
    Else
        MsgBox "Du kummst hier net rein !"
    End If

End Sub

' ---------- Ende Formular "Form1" alias Form1.frm  ----------

' -------------- Ende Projektdatei Projekt1.vbp --------------

	

Diskussion  

Diese Funktion ermöglicht es, Fragen, die die Veröffentlichung des Tipps betreffen, zu klären, oder Anregungen und Verbesserungsvorschläge einzubringen. Nach der Veröffentlichung des Tipps werden diese Beiträge nicht weiter verlinkt. Allgemeine Fragen zum Inhalt sollten daher hier nicht geklärt werden.

Um eine Diskussion eröffnen zu können, müssen sie angemeldet sein.