vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Controls · TextBox & RichTextBox   |   VB-Versionen: VB4, VB5, VB601.05.01
Passwort-Eingaben enttarnt

Dieser Tipp zeigt, wie man unter Windows 95 Passwörter aus Passwort-Dialogen auslesen kann.

Autor:   Heinz PrelleBewertung:     [ Jetzt bewerten ]Views:  25.818 
www.visual-basic5.deSystem:  Win9x, Win8, Win10, Win11 Beispielprojekt auf CD 

Normalerweise werden in Passwort-Eingabefelder anstelle der eingegebenen Buchstaben und Zahlen immer nur Sternchen angezeigt. Mit der nachfolgenden Routine können eben solche Eingabefelder so manipuliert werden, daß anstelle der Sternchen wieder die korrekte Eingabe zu sehen ist.

Hierzu wird der Mauszeiger permanent abgefragt und das Handle des Fensters, Objektes oder Controls, über welchen sich der Mauszeiger befindet ermittelt. Mit Hilfe dieses Handles wird das Zeichen für versteckte Eingaben (Passwort-Eingaben) wieder zurückgesetzt, so daß anstelle der Sternchen wieder der normale Text angezeigt wird.

Der Tipp funktioniert scheinbar aber nur unter Windows 95. Unter Windows NT/2000 zeigt der Tipp kein Erfolg!

Und so gehts:
Starten Sie ein neues Projekt und fügen die nachfolgenden Deklarationen im Allgemeinteil der Form ein.

' zunächst die benötigten API-Deklarationen
Private Declare Function SendMessage Lib "user32" _
  Alias "SendMessageA" ( _
  ByVal hwnd As Long, _
  ByVal wMsg As Long, _
  ByVal wParam As Long, _
  lParam As Any) As Long
 
Private Declare Function GetCursorPos Lib "user32" ( _
  lpPoint As POINTAPI) As Long
 
Private Declare Function WindowFromPoint Lib "user32" ( _
  ByVal xPoint As Long, _
  ByVal yPoint As Long) As Long
 
Private Type POINTAPI
  X As Long
  Y As Long
End Type
 
Private Const EM_SETPASSWORDCHAR = &HCC

Plazieren Sie ein Timer-Steuerelement auf die Form und setzen die Intervall-Eigenschaft auf 100. Das bedeutet, daß alle Zehntelsekunde das Timer1_Timer-Ereignis ausgelöst wird. Zusätzlich wird noch ein Label-Steuerelement benötigt, welches das ermittelte Fenster-Handle anzeigt. Nennen Sie das Label-Steuerelement lblHandle.

Private Sub Timer1_Timer()
  fGetPasswort lblHandle
End Sub

In der Prozedur fGetPasswort wird das Fensterhandle des Elements, auf dem sich der Mauszeiger gerade befindet, ermittelt. Über die SendMessage-API wird das Passwort-Zeichen entfernt, so daß bei Passwort-Texteingaben der Originaltext anstelle der Sternchen angezeigt wird.

Private Function fGetPasswort(objLabel As Label)
  Dim lRet As Long
  Dim CurPos As POINTAPI
 
  GetCursorPos CurPos
  lRet = WindowFromPoint(CurPos.X, CurPos.Y)
  objLabel.Caption = "Window Handle : " & lRet
  SendMessage lRet, EM_SETPASSWORDCHAR, 0, 0
End Function