cedit->SetPasswordChar(0);
-
Hallo Leute!
Anschliessend an meine letzte Frage gleich die Nächste

Nun, ich habe nun ein handle auf mein fremdes Fenster, kann auch einzelne controls ansprechen (static, edit, ...) und auch auslesen (sofern es kein Passwort-Feld ist).
Ich kann auch mit cedit->SetPasswordChar('#'); ein normales CEdit zum Password-Feld machen.
Aber was nicht funktioniert ist, dass ich das CEdit-Passwort-Feld, das vorher ein normales CEdit war, wieder lesbar mache:
cedit->SetPasswordChar('#'); cedit->SetPasswordChar(0);Da bleibt das CEdit auf ###### und läßt sich nicht mehr zurückverwandeln.
Wo liegt das Problem ?
Vielen Dank!
Liebe Grüße,
Captain.
-
ich denke, das ist ein schutzmechanismus von Windows, damit du keine Passwörter auslesen kannst, die nciht in deinem Programm stehen.
-
Hi dEUs!
Vielen Dank!
Hab gerade diese Seite entdeckt:
[url] http://www.securitytracker.com/alerts/2003/Mar/1006286.html [/url]Anscheinend ist da wirklich was mit der Sicherheit, aber mit
::PostMessage(child->m_hWnd, EM_SETPASSWORDCHAR, FALSE, FALSE);hab ich's zumindest geschafft das Passwort-Feld zu 'entschlüsseln'

WM_GETTEXT scheint in W2k und XP disabled zu sein, dennoch muß es eine Möglichkeit zum auslesen geben, da es Snadboy's Revelation schafft das Passwort im eigenen Fenster anzuzeigen.
Selbst wenn das direkte auslesen gesperrt ist, vielleicht besteht die Möglichkeit das Passwort direkt ins Clipboard zu kopieren ... (?)
Liebe Grüße,
Captain.
-
Versuch mal, nach
cedit->SetPasswordChar(0);oder
cedit->SetPasswordChar('#');noch
cedit->SetFocus();aufzurufen.
-
Ich habs geschafft

char sText[255]; ::PostMessage(hWnd, EM_SETPASSWORDCHAR, FALSE, FALSE); ::EnableWindow(hWnd, FALSE); ::PostMessage(hWnd, EM_SETPASSWORDCHAR, FALSE, FALSE); ::EnableWindow(hWnd, TRUE); ::SendMessage(hWnd, WM_GETTEXT, 255, (LPARAM)sText);Liebe Grüße,
Captain.