tuş dinleme, fonksiyon ile ilgili

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

tuş dinleme, fonksiyon ile ilgili

Mesaj gönderen metemete »

ps2 ye bağlı kart okuyucusundan kartı gectığımde (tuş dinterek ) arka planda calısan formum aktif olup girilen noyu ekrana yazmasını için aşağıdakı yontemi kullandım.
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.

ng
Üye
Mesajlar: 192
Kayıt: 01 Mar 2004 11:49
Konum: Bursa
İletişim:

Mesaj gönderen ng »

Kod: Tümünü seç

for i:=48 To 57 do begin
   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;
   end;
end;
form1.memo1.Text := form1.memo1.Text + Key; Key:='';
şeklinde yapıp bunu timer1 içerisinde çalıştırırsan ve timeri da 20 olarak ayarlasan sorun çıkarmadan çalışıyor.
kodlarında CallNextHookEx neden kullandığını anlayamadım.
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

Mesaj gönderen metemete »

tamam bende intervalı cok fazla değiştirererk denedim olmadı. yani azcık makınada word explorer excel acsam.uygulama eksik calısıyor.bazen calısyor. o yüzden fonsiyon içine aldım.fonsiyon ıcındende kolay kolay kacırmıyor ama kalvye bazen calsımaz hale gelıyor.oyuzden ctrl alt delete tuslarına biz kewz basınca düzeliyor
Kullanıcı avatarı
MehmetZahit
Üye
Mesajlar: 70
Kayıt: 04 Tem 2007 08:39

Mesaj gönderen MehmetZahit »

viewtopic.php?t=22592

burada sorduğun konu ile birleştirince Keylogger yazmaya çalışıyorsun galiba. Yoksa benmi yanlış anladım?

Ne programı yazdığını ayrıntılı anlat da, bizde bilelim keylogger olup olmadığını. Kart okuyucu ile ne ilgisi varmış?
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

Re: tuş dinleme, fonksiyon ile ilgili

Mesaj gönderen metemete »

elimizde 16 haneli kredi kartı gibi puantaj kartları var ve bunu okuyan ps2 girişli kart okuyucu var.asp ve sql de hazırlanmıs siteden kart numarasına kartı gecirdiğimizde otomatık olarak yazmasını salıyor var olan sistemde. benden istedikleri kartı okuyucn gecirince yazacağım uygulama ekrana otomatık gelsin sadece puan ı yazıp enter bastığıgında sql bilgiyi gonderip program tekrar gizlensin.ekran da sürekli aktik olmasını istemiyolar.oyüzden kart okuyucu calıstığında tuşları dinlemek istedim. ve burda kart okuyucudan gelen key numaraları 48..57 ye kadar.
Cevapla