Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Глобальный ХУК   Найти похожие ветки 

 
cherrex   (2004-03-09 14:04) [0]

Пытаюсь ставить глобальный ХУК, а он перехватывает сообщения  только с моего приложения.Я уже и в место hInstance пишу хэндл dll. ПОМОГИТЕ!!!!!!
library keyhook;

uses
 SysUtils,
 Windows,
 Messages,
 Forms;

var
hh : HHOOK;
F : TextFile;

{$R *.res}
function KeyboardProc(code : integer; wParam : word; lParam : longint) : longint;export; stdcall;
begin

if code < 0 then
begin
  Result:= CallNextHookEx(hh, Code, wParam, lParam);
  Exit;
end;
   if   (  ((lParam and $80000000)=0) and (wParam>=0) and (wParam<=120)  )
         OR (  ((lParam and $80000000)=0) and (wParam=VK_SPACE)  )
   then
     begin
     AssignFile(f,"log.txt");
     Append(f);
     Try
     Writeln(f,IntToStr(wParam));
     Finally
     CloseFile(f);
     end;
     end;
CallNextHookEx(hh, Code, wParam, lParam);
Result:= 0;
end;
//******************************************************************************
procedure hook(switch : Boolean; hMainProg: HWND) export; stdcall;
begin
if switch=true then
begin
  {&#211;&#241;&#242;&#224;&#237;&#224;&#226;&#235;&#232;&#226;&#224;&#254; HOOK, &#229;&#241;&#235;&#232; &#238;&#237; &#237;&#229; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#235;&#229;&#237; (switch=true). }
  hh := SetWindowsHookEx(WH_Keyboard, @KeyboardProc, LoadLibrary ("KeyHook.dll"), 0);

  if hh <> 0 then
      MessageBox(0, "Shell HOOK &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#235;&#229;&#237; !", "Message from shell.dll", 0)
    else
      MessageBox(0, "HOOK &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#232;&#242;&#252; &#237;&#229; &#243;&#228;&#224;&#235;&#238;&#241;&#252; !", "Message from shell.dll", 0);

end
else
{&#211;&#228;&#224;&#235;&#255;&#254; &#244;&#243;&#237;&#234;&#246;&#232;&#254;-&#244;&#232;&#235;&#252;&#242;&#240;, &#229;&#241;&#235;&#232; &#238;&#237;&#224; &#243;&#241;&#242;&#224;&#237;&#238;&#226;&#235;&#229;&#237;&#224; (&#242;.&#229;. switch=false). }
UnhookWindowsHookEx(hh)

end;

//******************************************************************************
exports hook;
begin
end.


 
Игорь Шевченко ©   (2004-03-09 14:06) [1]

Читаем статью про хуки на этом сайте в разделе "Статьи". Долго.


 
icebeerg ©   (2004-03-09 14:54) [2]

> Игорь Шевченко ©   (09.03.04 14:06) [1]
И нудно!

(хук справа, слева, снизу, ГЛОБАЛЬНЫЙ ХУК :))


 
cherrex   (2004-03-09 15:40) [3]

С DLL из примера тоже самое


 
tesseract ©   (2004-03-11 18:12) [4]

Про хуки надо читать в статьях на RSDN. У меня всё работало - но какой на фиг forms  в DLL перехвата????? Если ты в EXE его пишешь то конечно не заработает - надо отдельную DLL писать.



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
4-1078141590
tytus
2004-03-01 14:46
2004.05.02
Ярлык и значек


14-1081086968
Piter
2004-04-04 17:56
2004.05.02
FAQ: PChar и String


3-1081326807
Bizon
2004-04-07 12:33
2004.05.02
актуальный срез в SQL для IB 6


9-1068791076
IgAn
2003-11-14 09:24
2004.05.02
Алгоритм случайной генерации карты


1-1082145132
NeyroSpace
2004-04-16 23:52
2004.05.02
Поток и все все все...