Pytanie o hasło w bibliotece DLL

0

Moja DLLka, ma za zadanie sprawdzić hasło i zwrócić odpowiedź do programu czy hasło jest poprawne czy nie.

Jedyny problem jaki mam to to, że korzystam z InputBox a hasło musi być ukryte pod "gwiazdkami".

Nie wiem jak wykorzystać poniższy sposób, na wysłanie komunikatu do InputBox, aby zamienić wpisywane znaki.
W bibliotece "Delphi" nie wie co to jest "message" w linii [5]. Jak temu zaradzić bez użycia modułu "Forms" ?

uses
  Windows, Messages, Dialogs;

private // private też nie może być....
    procedure Has(var Msg: TMessage); message WM_USER + 200;  //tutaj problem, jeśli usunę tą linię... PostMessage nie wykonuje się

procedure Has(var Msg: TMessage);
var
 hInputForm, hEdit: HWND;
begin
 hInputForm := Screen.Forms[0].Handle;
 if (hInputForm <> 0) then
   begin
    hEdit := FindWindowEx(hInputForm, 0, 'TEdit', nil);
    SendMessage(hEdit, EM_SETPASSWORDCHAR, Ord('•'), 0);
   end;
end;

Wywołanie w DLLce:
Mimo wysłania komunikatu PostMessage, hasło nadal jest widoczne w InputBox.

function SprawdzHaslo: Boolean; stdcall;
var
 Haslo: ShortString;
begin
 //Pobierane jest hasło założone
 //Haslo := ...

 // Sprawdzanie hasła założonego z wpisanym
 PostMessage(Application, WM_USER + 200, 0, 0);
 Result := InputBox('Wpisz hasło', '', '') = Haslo;
end;
0

Bez Forms? To może samo WinAPI ? hie hie hie

0

Po prostu leniwość Twoja nie zna granic ;)
Nie możesz se zrobić własnej formy? ;)

0

Dodając moduł "Forms" biblioteka zwiększa się i to znacznie. Dzięki InputBox nie trzeba tworzyć do tego formy, tylko jak ukryć te litery ??

0

WinAPi! WinAPI! ( brzmi jak koszmar =D )

1 użytkowników online, w tym zalogowanych: 0, gości: 1