Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TEdit Tastatureingaben abfangen (https://www.delphipraxis.net/129985-tedit-tastatureingaben-abfangen.html)

cookie22 1. Mär 2009 07:40


TEdit Tastatureingaben abfangen
 
hallo,

in meinem programm möchte ich einhalbwegs sicheres password edit benutzen.

ich versuche nun die tastatureingabe abzufangen und die ankommenden keys in einen string zu speichern, ausserdem möchte ich gleichzeit halt die bekannten sternchen ins edit schreiben?


Delphi-Quellcode:
procedure TForm1.EditWndProc(var Message: TMessage);
var
  password: string
begin
  if (Message.Msg = WM_KEYUP) then
  begin
     s := s + '*';
     edtPwd.Text := s; // hier wird immer kurz das eingegebene zeichen angezeit
     password := ? // hier muss ich an die keys kommen aber wie?
     Message.Result := 1;
  end else
    FOldEditProc(Message);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FOldEditProc := edtPwd.WindowProc;
  edtPwd.WindowProc := EditWndProc;
end;
soweit bin ich schonmal. meine frage ist jetzt, wie komm ich an die keys? wenn ich versuche das sternchen so zu setzen, wird immer das eingegebene zeichen noch kurz angezeigt. wie kann ich das verhindern?

danke im voraus.

MfG,
cookie

teebee 1. Mär 2009 08:14

Re: TEdit Tastatureingaben abfangen
 
Schau Dir mal die Eigenschaft PasswordChar von TEdit an.

cookie22 1. Mär 2009 08:25

Re: TEdit Tastatureingaben abfangen
 
genau das möchte ich ja nicht benutzen, weil man ohne probleme mit tools wie winspy and den inhalt des edits kommt.

Satty67 1. Mär 2009 09:04

Re: TEdit Tastatureingaben abfangen
 
Message.WParam & LParam wird wohl den Tastencode/status enthalten.

Aber Du unterbrichst ja nur die Botschaft zum Edit. Davor kann die trotzdem abgefangen werden. Windows schickt die Botschaft vom Tastaturtreiber ja an die Anwendung mit dem Focus. Abgefangen wird von Spy-Programmen dazwischen und Du arbeitest nur innerhalb Deiner Anwendung (und was ist mit KeyDown, KeyPress?).

Sieht auch blöd aus, wenn der Cursor immer an Pos1 im TEdit geschickt wird, Delete/Entf und wiederholte Tasten musst Du auch behandeln.

DeddyH 1. Mär 2009 09:26

Re: TEdit Tastatureingaben abfangen
 
Man könnte sich ja einmal den Source dieser Komponente anschauen, die soll so etwas können.

cookie22 1. Mär 2009 10:12

Re: TEdit Tastatureingaben abfangen
 
die komponete hilft mir leider nicht weiter. ich möchte zwischendurch tastenanschläge senden um so keylogger zu verwirren. darum muss es auf diese art gehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz