Acerca del principio de visualización de asteriscos
{
POINT P;
::GetCursorPos( &P);//captura la posición de la pantalla del mouse
/Obtiene la posición del mouse debajo del identificador de la ventana
HWND HWnd = ::WindowFromPoint(P);
/ /Enviar un mensaje "Obtener cadena de título" a esta ventana
char buffer[100];char Char;
Char = SendMessage (HWnd,EM_GETPASSWORDCHAR,0, 0);// obtener el carácter de la contraseña
PostMessage (HWnd,EM_SETPASSWORDCHAR,0,0);//cancelar el carácter de la contraseña
Sleep (60);
Esta ventana envía el mensaje "Obtener cadena de título". Enviar mensaje (HWnd,WM_GETTEXT,255,long(buffer));Obtener la contraseña real
PostMessage (HWnd,EM_SETPASSWORDCHAR,Char,0);Restaurar el carácter de contraseña // aparece en el objeto String en la ventana Form1
Caption = buffer;
}Aquí se utiliza un temporizador para llamar al código anterior cada 100 milisegundos. Podemos ver que hay varios mensajes que están rompiendo nuestro juego. Si podemos enmascarar esta información, podemos ocultar de forma segura la contraseña real. Hay muchas formas de bloquear información en Internet, pero todas son demasiado complicadas. Mi opinión es la siguiente: 2. Evitar el visor de contraseñas con asterisco Podemos derivar un nuevo componente de TEdit llamado TBugEyesEdit y luego modificar su definición de mensaje.
Agregue el siguiente código al archivo de encabezado: public:
__fastcall TBugEyesEdit(TComponent* Owner);
void __fastcall BugEyes(TMessage &Msg); //personaliza la función del controlador de mensajes
p >BEGIN_MESSAGE_MAP //sombreado de mensajes
VCL_MESSAGE_HANDLER(EM_GETPASSWORDCHAR,TMessage,BugEyes)
VCL_MESSAGE_HANDLER(WM_GETTEXT.TMessage,BugEyes)
VCL_MESSAGE_HANDLER(EM_SETPASSWORDCHAR , TMessage,BugEyes)
END_MESSAGE_MAP(TEdit) //Finalizar el seguimiento del mensaje Luego agregue el siguiente código en su archivo cpp. El siguiente código: void __fastcall TBugEyesEdit::BugEyes(TMessage &Msg)
{
Msg.Result =0;
}Finalmente, instale este nuevo componente y Agréguelo a su propio programa, establezca su propiedad PasswordChar en "*" y luego ejecute el programa. El visor de contraseñas de asterisco se desactivará y ya no podrá ver la contraseña real.