Fora de foco...

Delphi

02/02/2003

MEU PROGRAMA CAPTURA AS TECLAS DIGITADAS PELO USUÁRIO COLOCA NUM MEMO E DEPOIS SALVA EM UMA ARQUIVO A CADA 15 MINUTOS...O PROBLEMA É QUE ELE SÓ FAZ ISSO QUANDO A JANELA ESTÁ ATIVA OU O FOCO ESTÁ NELA....ALGUÉM PODE ME AJUDAR PRECIOS QUE ISSO ACONTEÇA MESMO QDO MEU PROGRAMA ESTIVER MINIMIZADO OU POR EXEMPLO QDO O USUÁRIO TEVIER NO WORD MESMO ASSIM A APLICAÇÃO TEM QUE CAPTURAR AS TECLAS DIGITAS ETC.....ME AJUDEM JÁ FAZ TEMPO QUE TO PERGUNTANDO.....


Morpheus

Morpheus

Curtidas 0

Respostas

Skaarj

Skaarj

02/02/2003

Vc qeu uma espécie de Keylloger né?
Olha, ñ sei fzer cm o teclado, ms vou t pssar a função pra desmascarar senha [*], cmo o mouse vvc pssa sobre o texto em [*] que ele mostra em um Hint.. Msmo cm o prog minimizado, vai q t ajuda:

var
WndHint: THintWindow = nil; // declare a variável fora da procedure

procedure TForm1.Timer1Timer(Sender: TObject);
var
Pos: TPoint;
HWin: THandle;
Paswd: array[0..63] of Char;
R: TRect;
begin
GetCursorPos(Pos);
HWin := WindowFromPoint(Pos);
if SendMessage(HWin, EM_GETPASSWORDCHAR, 0, 0) <> 0 then
begin
if WndHint = nil then
begin
WndHint := THintWindow.Create(Self);
WndHint.Color := clInfoBk;
SendMessage(HWin, WM_GETTEXT, 64, Longint(@Paswd));
R := Rect(Pos.X, Pos.Y + 18, Pos.X +
WndHint.Canvas.TextWidth(Paswd) + 8,
Pos.Y + 18 + WndHint.Canvas.TextHeight(Paswd));
WndHint.ActivateHint(R, Paswd);
end;
end
else if WndHint <> nil then
begin
WndHint.ReleaseHandle;
WndHint := nil;
end;
end;


GOSTEI 0
Anonymous

Anonymous

02/02/2003

Você precisar usar API´s do windows .. o windows possui mensagens internas que envia para os programas dizendo o que ele está fazendo, e existem uma mensagem que diz que o teclado está sendo presionado e qual a tecla está sendo precionada. Tem tudo no help do WIN32, que deve estar no caminhos
C:\Arquivos Comuns\Borland Shared\MSHelp\Win32.hlp.... ou qualquer coisa parecida.... eu não sei bem certo qual é a mensagem mas sei que tem pq uma vez eu usei algo parecido !!!
valeu


GOSTEI 0
Rubensavelino

Rubensavelino

02/02/2003

Enviei um exemplo para vc analisar


Ate rubensavelino


GOSTEI 0
POSTAR