Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Определить, что текстовое поле для ввода пароля

Delphi , Синтаксис , Пароли

Определить, что текстовое поле для ввода пароля

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

// Determine, if a Edit Field has password characters 
// Herausfinden, ob das Edit Feld Passwort Charakter hat 
function HasPasswordChar(AHandle: HWND): Boolean;
 var
   dwStyle: DWORD;
 begin
   dwStyle := GetWindowLong(AHandle, GWL_STYLE);
   Result := (dwStyle and ES_PASSWORD) = ES_PASSWORD;
 end;

 // Set password characters for the Edit Field 
// Passwort Charakter fur ein Edit Feld setzen 
procedure SetPasswordChar(AHandle: HWND; Value: Char);
 var
   S: String;
   len: Integer;
 begin
   len := Sendmessage(AHandle, WM_GETTEXTLENGTH, 0, 0);
   SetLength(S, len);
   SendMessage(AHandle, WM_GETTEXT, len+1, lparam(@S[1]));
   SendMessage(AHandle, EM_SETPASSWORDCHAR, Ord(Value), 0);
   SendMessage(AHandle, WM_SETTEXT, 0, Integer(PChar(S)));
 end;

 // Cancel the password characters and reveal the text 
// Password Charakter aufheben und den Text anzeigen 
procedure CancelPasswordChar(AHandle: HWND);
 var
   S: string;
   len: Integer;
 begin
   len := SendMessage(AHandle, WM_GETTEXTLENGTH, 0, 0);
   SetLength(S, len);
   SendMessage(AHandle, WM_GETTEXT, len + 1, lParam(@S[1]));
   SendMessage(AHandle, EM_SETPASSWORDCHAR, 0, 0);
   SendMessage(AHandle, WM_SETTEXT, 0, Integer(PChar(S)));
 end;

 // Example: 
procedure TForm1.Button1Click(Sender: TObject);
 var
   wnd: HWND;
 begin
   wnd := FindWindowEx(GetForeGroundWindow, 0, 'TEdit', nil);
   if wnd <> 0 then
     SetPasswordChar(wnd,'*');
 end;

Программный код на языке Delphi, который связан с полями редактирования текста (Edit Fields) и их характеристиками пароля. Код обеспечивает функции для определения, имеет ли поле редактирования текста парольные символы, установления символа пароля для поля редактирования текста и отмены пароля, чтобы раскрыть оригинальный текст.

Описание кода:

  1. HasPasswordChar(AHandle: HWND): Boolean;:
    • Функция determines, whether an Edit Field with the handle AHandle has password characters.
    • Она использует функцию Windows API GetWindowLong() для получения стиля окна для поля редактирования текста и затем проверяет, содержит ли стиль ES_PASSWORD, что указывает на то, что поле редактирования текста имеет парольные символы. Если это так, функция возвращает True; иначе, она возвращает False.
  2. SetPasswordChar(AHandle: HWND; Value: Char);:
    • Процедура sets the password character for an Edit Field with the handle AHandle to the specified Value.
    • Она использует несколько функций Windows API:
      • SendMessage() sends a message to the Edit Field to get the length of its text.
      • SetLength() sets the length of a string.
      • SendMessage() again sends a message to the Edit Field to set the password character to the specified value.
      • SendMessage() sets the text for the Edit Field using the modified string.
  3. CancelPasswordChar(AHandle: HWND);:
    • Процедура cancels the password characters for an Edit Field with the handle AHandle and reveals the original text.
    • Она использует несколько функций Windows API:
      • SendMessage() sends a message to the Edit Field to get the length of its text.
      • SetLength() sets the length of a string.
      • SendMessage() again sends a message to the Edit Field to retrieve the original text.
      • SendMessage() sets the password character for the Edit Field to the default (0), effectively canceling it.
  4. Example::
    • Пример кода демонстрирует, как использовать эти процедуры на практике.
    • Он находит поле редактирования текста с именем класса 'TEdit' и устанавливает его символ пароля в '*'.

В целом, этот код обеспечивает способ управления полями редактирования текста и их характеристиками пароля с помощью языка программирования Delphi.

Статья описывает функции на языке программирования Delphi, которые позволяют определять, имеет ли текстовое поле для ввода пароля, устанавливать символы-заменители в этом поле и отменять их.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Пароли ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 17:26:30/0.0032200813293457/0