Minha aplicacao fora de foco
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
Curtidas 0
Respostas
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
Se nao souber como fazer isso, coloque uma resposta para esse topico.
[]s,
JR
GOSTEI 0
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]
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
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;
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
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]
mandem aí o code sobre as msg do Win [b:96b01ff17e]Junior Thurler[/b:96b01ff17e]
GOSTEI 0
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
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
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
02/02/2003
É SKAARJ,
Você esperneou mas findou não respondendo o que foi perguntado.Afinal você sabe ou não?
Você esperneou mas findou não respondendo o que foi perguntado.Afinal você sabe ou não?
GOSTEI 0
Anonymous
02/02/2003
para pegar as teclas digitadas, procurem pelo componente KeySpy
espero ter ajudado
[]s a todos
eddye
espero ter ajudado
[]s a todos
eddye
GOSTEI 0
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
02/02/2003
Morpheus, vc usou essa função:
function tbKeyIsDown(const Key: integer): boolean;
begin
Result := GetKeyState(Key) and 128 > 0;
end;
function tbKeyIsDown(const Key: integer): boolean;
begin
Result := GetKeyState(Key) and 128 > 0;
end;
GOSTEI 0
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