Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неработает dll, Снова я о хуках 
:(
    Опции темы
Redhopter
Дата 28.10.2004, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 30.9.2004
Где: Нижний Новгород

Репутация: нет
Всего: нет



Здравствуйте товарищи!!!!
Помогите найти ошибку в Dll

Код

library hook_dll1;
uses
 Windows,
 Messages,dialogs, system,
 Forms;
var
 SysHook : HHook = 0;
 Wnd : Hwnd = 0;
function SysMsgProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
a:string[10];
begin
 Wnd:=findwindow(nil,'Server');
 if (TMsg(Pointer(lParam)^).hwnd=wnd)and(wnd<>0) then
 begin
   if TMsg(Pointer(lParam)^).message=wm_datacopy then
   begin
     TMsg(TMsg(Pointer(lParam)^).message:=0;
     showmessage('Перехватил');
   end;
 end;
end;
procedure hook(switch : Boolean) export; stdcall;
begin
 if switch=true then
 begin
   SysHook := SetWindowsHookEx(WH_GETMESSAGE, @SysMsgProc, HInstance, 0);
   if SysHook <> 0 then
       MessageBox(0, 'HOOK1 установлен !', 'Message from Exampel1/Process1', 0)
     else
       MessageBox(0, 'HOOK1 установить не удалось !', 'Message from Exampel1/Process1', 0);
 end
 else
 begin
   if UnhookWindowsHookEx(SysHook) then
     MessageBox(0, 'HOOK1 снят !', 'Message from Exampel1/Process1', 0)
   else
     MessageBox(0, 'HOOK1 снять не удалось !', 'Message from Exampel1/Process1', 0);
   SysHook := 0;
 end;
end;

exports hook;

begin
end.



Dll никак не хочет перехватывать сообщение....Я даже специльно программы 2 написал..они обмениваются данными при помощи wm_datacopy
Но пчему-то ловушка их не ловит...Помогите найти ошибку!
Помогите плиз
:qstn

Это сообщение отредактировал(а) Redhopter - 29.10.2004, 08:12
PM MAIL   Вверх
Redhopter
Дата 29.10.2004, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 30.9.2004
Где: Нижний Новгород

Репутация: нет
Всего: нет



Блин!!Здесь есть кто разбирается в правильной постановке ловушки??
А то се вроде правильно, но она может перехватывать только все сообщения...а сообщение wm_copydata не хочет, как и прочие пользовательские сообщения
Добавлено @ 08:16
В том плане что она как-то не находит различий между ними....
Как будто вовсе и не было сообщения wm_copydata
PM MAIL   Вверх
Ne0
Дата 12.11.2004, 21:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код
----------DLL--------------
uses
*****;

var
Hk:Thandle;

function KeybHk(code: integer; wParam: word; lParam: longword):longword; stdcall;
  begin

   if code<0 then begin  
      KeybHk:=CallNextHookEx(Hk,code,wParam,lparam);
      Exit;
   end;
   
   if code>0 then
   begin
       
   {****Do something****}
   end;
   
  end;
CallNextHookEx(Hk,code,wParam,lparam);
KeybHk:=0;
Exit;
end;

procedure StHk;
begin
 Hk:=SetWindowsHookEx(WH_****,@KeybHk,hInstance,0);
 if Hk = 0 then MessageBox(0,'','Ошибка',MB_OK);
end;

procedure StopHk;
begin
UnhookWindowsHookEx(Hk);
end;

exports
StHk index 1 name 'StHk',
StopHk index 2 name 'StopHk';
end.
-----------------------------------------------

Тепер сам импортируй эти проц. Удачи!

smile
Добавлено @ 21:17
Ну там в uses е сам знаеш
Windows,Messages

Это сообщение отредактировал(а) p0s0l - 13.11.2004, 02:06
  Вверх
decoder
Дата 15.11.2004, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 18.5.2004
Где: Харьков(хохол, к сожалению)

Репутация: 1
Всего: -1



Блин, не надо MessageBox использовать ваще - она управления не возвращает, пока ОК не нажмёшь, что чревато последствиями. Сто пудов, уберёшь MessageBox вот здесь:
Цитата(Redhopter @ 28.10.2004, 21:31)
MessageBox(0, 'HOOK1 установлен !', 'Message from Example1/Process1', 0)
- усё работать будет!

--------------------
Молчать, я вас спрашиваю!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0399 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.