Minha aplicacao 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

Anonymous

Anonymous

02/02/2003

Como voce esta capturando as teclas na sua aplicacao ? Se o seu programa esta utilizando o evento OnKeyPress, voce nao vai conseguir fazer o que vc esta querendo, somente se vc fizer atraves da captura de tecla do Windows, atraves da captura das mensagens do Windows.

Se nao souber como fazer isso, coloque uma resposta para esse topico.

[]s,

JR


GOSTEI 0
Iskatrek

Iskatrek

02/02/2003

[b:d800f75e55]manda aê vei,
como faz a parada aí!

manipular as msg do win, algumas eu sei, mas a de tecla pressionada ñ,

manda aí o teu exemplo[/b:d800f75e55]


GOSTEI 0
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
Iskatrek

Iskatrek

02/02/2003

Eu queria por curiosidade saber como pegar uma tecla q ñ esta dirigida aminha aplicacao, nem é p/ o Key logger ñ, é p/ fazer algo q impeca alguns outtros comando em outros progs,

mandem aí o code sobre as msg do Win [b:96b01ff17e]Junior Thurler[/b:96b01ff17e]


GOSTEI 0
Skaarj

Skaarj

02/02/2003

Eu queria por curiosidade saber como pegar uma tecla q ñ esta dirigida aminha aplicacao, nem é p/ o Key logger ñ, é p/ fazer algo q impeca alguns outtros comando em outros progs, mandem aí o code sobre as msg do Win [b:e118b66ef7]Junior Thurler[/b:e118b66ef7]


Dei uma ideia d cmo receber infos do ambiente externo.. E O q vc pd fzer pra proteger assim sua aplicação? Tirar ALT+F4? CTRL+ALT+DEL..
Isso se faz diferent..


GOSTEI 0
Morpheus

Morpheus

02/02/2003

realmente e isso que eu preciso...estou usando o evento on-key...mas e claro que naum vai funcionar ja que o form naum estara aberto...como capturar essas teclas...como manipular essas mensagem do windows ???


GOSTEI 0
Iskatrek

Iskatrek

02/02/2003

e aí, [b:165632dec0]Junior Thurler[/b:165632dec0] demosntra aki o uso da msg do Win sobre pressionamento de tecla,


GOSTEI 0
Anonymous

Anonymous

02/02/2003

É SKAARJ,

Você esperneou mas findou não respondendo o que foi perguntado.Afinal você sabe ou não?


GOSTEI 0
Anonymous

Anonymous

02/02/2003

para pegar as teclas digitadas, procurem pelo componente KeySpy


espero ter ajudado


[]s a todos

eddye


GOSTEI 0
Skaarj

Skaarj

02/02/2003

É SKAARJ, Você esperneou mas findou não respondendo o que foi perguntado.Afinal você sabe ou não?


Não sei fzer.. por isso coloqei a funçao d mouse pra vr se dava uma ideia.. As vzs ajuda..
Cansei d vr uma coisa q era aprecida e resolver o probl..
E vc sab?


GOSTEI 0
Skaarj

Skaarj

02/02/2003

Morpheus, vc usou essa função:

function tbKeyIsDown(const Key: integer): boolean;
begin
Result := GetKeyState(Key) and 128 > 0;
end;


GOSTEI 0
Morpheus

Morpheus

02/02/2003

REALMENTE AGRADE´´CO A TODOS POR ME AJUDAREM...J´´A TIVE UMA BOA ID´´EIA E SEI QUAL O CAMINHO QUE DEVO TOMAR. Atraves da dica do SKAARJ percebi que tavano caminho errado tb a dica do Junior e todos ...mas naum resolvi meu problema ainda...espero que consiga vou pesquizar e qdo descobrir irei disponibilizar a todos principalmente aos que aki expressaram seu interesse em me ajudar....OBRIGADO....


GOSTEI 0
POSTAR