VB 5/6-Tipp 0526: Ein Passwortfeld auslesen
von Stephan Probst
Beschreibung
Das Programm ließt Passwörter aus, die mit Sternen, Punkten oder sonstigen Sonderzeichen angezeigt werden und entfert diese sogar.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: GetCursorPos, GetWindowTextA (GetWindowText), GetWindowTextLengthA (GetWindowTextLength), SendMessageA (SendMessage), SetWindowPos, WindowFromPoint | Download: |
'Dieser Quellcode 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 "Form1" alias Form1.frm --------- ' Steuerelement: Textfeld "Text1" ' Steuerelement: Kontrollkästchen-Steuerelement "Check1" ' Steuerelement: Beschriftungsfeld "Label5" ' Steuerelement: Beschriftungsfeld "Label2" ' Steuerelement: Beschriftungsfeld "Label4" ' Steuerelement: Beschriftungsfeld "Label1" ' Steuerelement: Beschriftungsfeld "Label3" 'Von Stephan Probst 'E-Mail Stephan-Probst@t-online.de 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 Declare Function GetWindowText _ Lib "user32" Alias "GetWindowTextA" ( _ ByVal hwnd As Long, _ ByVal lpString As String, _ ByVal cch As Long) As Long Private Declare Function GetWindowTextLength _ Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long 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 SetWindowPos Lib "user32" ( _ ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, _ ByVal X As Long, _ ByVal Y As Long, _ ByVal cx As Long, _ ByVal cy As Long, _ ByVal wFlags As Long) As Long Const SWP_NOMOVE = &H2 Const SWP_NOSIZE = &H1 Const HWND_TOPMOST = -1 Const HWND_NOTOPMOST = -2 Private Const EM_SETPASSWORDCHAR = &HCC Private Type POINTAPI X As Long Y As Long End Type Dim bRunning As Boolean 'Zeigt an, ob das Programm läuft Private Sub Check1_Click() If Check1.Value = 1 Then 'Fenster oben halten SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE Else 'Fenter nicht oben halten SetWindowPos hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE End If End Sub Private Sub Form_Load() 'Formular anzeigen Me.Show 'Formular immer oben halten SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE 'Aktuelle hWnd ermitteln etc. Call getWindowUM End Sub Public Sub getWindowUM() Dim P As POINTAPI Dim lo As Long Dim str As String 'Bis das Programm beendet wird weitermachen... bRunning = True Do Until bRunning = False 'Cursorposition auslesen GetCursorPos P 'Das entsprechende Fenster finden lo = WindowFromPoint(P.X, P.Y) 'Den Titel auslesen str = String(GetWindowTextLength(lo), Chr$(0)) GetWindowText lo, str, 100 'Ergebnisse anzeigen Label1.Caption = str Label2.Caption = lo 'Den Passwortcharacter entfernen SendMessage lo, EM_SETPASSWORDCHAR, 0, "" DoEvents Loop End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) 'Programm beenden bRunning = False End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Projekt1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 4 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von TKProgs am 05.09.2007 um 14:18
Bei mir läuft das auch nich überall, z.b. bei Outlook nicht.
XP, SP2, VB6
Kommentar von Timon am 30.04.2007 um 09:57
Liest bei mir jedes label usw. aus, nur keine Textfelder :-) hmmm (WinXP SP2, VB6)
Kommentar von MaXX am 03.06.2005 um 05:50
Hat bei mir zb. mit Outlook funktioniert.
aber bei incredi mail pwd feld nicht . weiß jemand warum ?
Kommentar von floh am 04.06.2004 um 07:06
Bei mir wird lediglich die ID und der name der steuerelemente angezeigt, nicht aber der inhalt (Ich hab es mit einem Textfeld probiert - VB6, passwortChar='*')