for i:=48 To 57 do
if GetAsyncKeyState(i)=-32767 then begin
case i of
48..57 : Key:=Key + inttostr(i-48);
yukardakı satırları timer içine koydugumda ve
timer1.intervalı:=1 veya 5 veya 10 veya 100 yapsamda arada kaçırma yapıyor yani eksik alıyor. bu yüzden fonksiyon arasına koyim dedim
bunun için mouse x,y sini gösteren fonsyonun formatını aldım
ve
sistem istediğim gibi calıştı yalnız arada klavye kitleniyo Ctrl Alt Delete ile görev yöneticisini acıp kapayınca tekrar sistem düzeliyor.sanırım fonksiyon pc yi kasıyoo yada fonsiyonda bi problem var
bu konuda yardım lütfen ?
yada benim istediğim eksiksiz klavyeyi dinlemek
bunun için başka yöntem tavsiye edermisiniz?
Kod: Tümünü seç
var
Form1: TForm1;
hJHook:integer;
DoJournal:boolean;
Buffer : Array[0..350] of char;
key:string;
implementation
{$R *.DFM}
function JournalProc(Code, wParam: Integer; var EventStrut: TEVENTMSG): Integer; stdcall;
var i: byte; L:integer;
begin
Result := CallNextHookEx(hJHook, Code, wParam, Longint(@EventStrut));
for i:=48 To 57 do
if GetAsyncKeyState(i)=-32767 then begin
case i of
48..57 : Key:=Key + inttostr(i-48); //Amipad 0..9
// 96..105 : Key:=Key + inttostr(i-96); //Numpad 0..9
end;
form1.memo1.Text := form1.memo1.Text + Key; Key:='';
end;
end;
procedure TForm1.ButtonCalisClick(Sender: TObject);
begin
if not DoJournal then
Begin
hJHook := SetWindowsHookEx(WH_JOURNALRECORD , @JournalProc, hInstance, 0);
if hJHook > 0 then
begin
DoJournal := True;
end; end
end;
procedure TForm1.ButtonDurClick(Sender: TObject);
begin
DoJournal := False;
UnhookWindowsHookEx(hJHook);
hJHook := 0;
Sleep(100);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ButtonCalis.Click
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
buttondur.click;
end;
end.