![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Pavlo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Вы меня извените, что задаю вопрос, который тут уже не раз обсуждался!
Я искал по всему нету хоть один рабочий пример keylog'a, но всё напрасно! В каждом из примеров есть какой либо глюк, который вывести сложно! По сему поводу попросил бы вас кинуть в меня хоть какой рабочий пример проги по сабжу. Но тока с формой и всеми делами! Я имею введу весь проект! Киньте плз туда-> [email protected] Спасибо! |
|||
|
||||
| Pavlo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Вот тут есть один пример, который работает, но он не даёт печатать текст там где надо!
Сами увидите! library KeyHook; uses shellapi, windows; var g_hhk: HHOOK; function KeyboardProc(nCode: Integer; wParam: wParam; lParam: lParam ): LParam; stdcall; var f:textfile; begin assignfile(f, 'c:\hook.txt'); {try} append(f); {except rewrite(f); end; } writeln(f, nCode,',',wParam,',',lParam); close(f); end; exports KeyboardProc; begin end. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var hinstDLL: HINST; hkprcKeyboard: TFNHookProc; msg: TMsg; begin hinstDLL := LoadLibrary('KeyHook.dll'); hkprcKeyboard := GetProcAddress(hinstDLL, 'KeyboardProc'); SetWindowsHookEx(WH_KEYBOARD, hkprcKeyboard, hinstDLL, 0); end; end. |
|||
|
||||
| Pavlo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
А тут что не так?
{текст библиотеки} library SendKey; uses WinTypes, WinProcs, Messages; const {пользовательские сообщения} wm_NextShow_Event = wm_User + 133; wm_PrevShow_Event = wm_User + 134; {handle для ловушки} var SaveExitProc : Pointer; HookHandle: hHook; {собственно ловушка} function Key_Hook(Code: integer; wParam: word; lParam: Longint): Longint; export; var f:textfile; H: HWND; begin {если Code> =0, то ловушка может обработать событие} if Code >= 0 then begin {это те клавиши?} if ((wParam = VK_ADD)or(wParam = VK_SUBTRACT)) and (lParam and $40000000 = 0) then begin {ищем окно по имени класса и по заголовку} H := FindWindow('TForm1', 'XXX'); {посылаем сообщение} if wParam = VK_ADD then begin SendMessage(H, wm_NextShow_Event, 0, 0); assignfile(f,'hook.txt'); rewrite(f); writeln(f,code,lparam,wparam); end else SendMessage(H, wm_PrevShow_Event, 0, 0); end; {если 0, то система должна дальше обработать это событие} {если 1 - нет} Result:=0; end else {если Code< 0, то нужно вызвать следующую ловушку} Result := CallNextHookEx(HookHandle,Code, wParam, lParam); end; {при выгрузке DLL надо снять ловушку} procedure LocalExitProc; far; begin if HookHandle<> 0 then begin UnhookWindowsHookEx(HookHandle); ExitProc := SaveExitProc; end; end; exports Key_Hook index 1; {инициализация DLL при загрузке ее в память} begin {устанавливаем ловушку} HookHandle:=SetWindowsHookEx(wh_Keyboard, @Key_Hook, hInstance, 0); if HookHandle = 0 then MessageBox(0, 'Unable to set hook!', 'Error', mb_Ok) else begin SaveExitProc := ExitProc; ExitProc := @LocalExitProc; end; end. unit Unit1; interface uses SysUtils,WinTypes,WinProcs,Messages,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls; {пользовательские сообщения} const wm_NextShow_Event = wm_User + 133; wm_PrevShow_Event = wm_User + 134; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; procedure FormActivate(Sender: TObject); private {обработчики сообщений} procedure NextMSG (Var M : TMessage); message wm_NextShow_Event; procedure PrevMSG (Var M : TMessage); message wm_PrevShow_Event; end; var Form1:TForm1; P:Pointer; dll:THandle; implementation {$R *.DFM} {загрузка DLL} function Key_Hook : Longint; far; external 'SendKey' index 1; procedure TForm1.NextMSG(Var M : TMessage); begin edit1.text:='Next message'; end; procedure TForm1.PrevMSG(Var M : TMessage); begin edit1.text:='Previous message'; end; procedure TForm1.FormActivate(Sender: TObject); var z:integer; begin {DLL := LoadLibrary('sendKey.dll'); z:=Key_Hook; form1.edit1.text:=inttostr(z)+'dddddddddd'; {если не использовать вызов процедуры из DLL в программе, то компилятор удалит загрузку DLL из программы} P:=@Key_Hook; end; end. Форму надо обозвать XXX |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Давай я тебе на мыло скину пример.
|
|||
|
||||
| Pavlo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Если можно, пожалуйста!
|
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Sending ......
|
|||
|
||||
| Pavlo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
||||
|
||||
| Mikel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: 1 Всего: 2 |
А мой архивчик не понравился?
-------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
| Pavlo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Очень понравился!!!!
Просто тему надо поддержать!!! |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
А что за архивчик?
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Mikel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: 1 Всего: 2 |
Нехороший архивчик- исходники проги, "одалживающий" пароль интернет. Я там отправку на мыло до конца не доделал. И ещё: она прячется, когда висит окно с сведениями о системе(там можно увидить активные ловушки)
-------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
| Pavlo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 25.3.2002 Репутация: нет Всего: нет |
Мне не интересна ловля паролей!!!! Мне просто нужен модуль для ловли клавиш, причём не только английской раскладки.
Если есть идеи... |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
павло чего тебе ещё надо яж тебе пример выслал.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |