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

Вниз

Хуки:   Найти похожие ветки 

 
greenrul ©   (2003-05-30 18:42) [0]

Я ставлю хук на нажатие любой клавиши в системе ВООБЩЕ:

var
SysHook:HHook=0;

procedure TMainForm.FormCreate(Sender: TObject);
...
SysHook:=SetWindowsHookEx(WH_KEYBOARD, @SysMsgProc, HInstance, 0);
...
end;

function SysMsgProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
begin
CallNextHookEx(SysHook, Code, wParam, lParam);
if code=HC_ACTION then ShowMessage("PrEsSeD")
end;


Но сообщение вылазит только если я нажимаю клавишу в программе, но в других программах - нет.


 
MBo ©   (2003-05-30 18:46) [1]

Статью о хуках читал? Обратил внимание, что общесистемный хук должен быть в DLL?


 
VMcL ©   (2003-05-31 03:49) [2]

>greenrul © (30.05.03 18:42)

Во-первых: >MBo © (30.05.03 18:46)

Во-вторых: function SysMsgProc вызывается в адресном пространстве процесса, в котором "нажали" клавишу, поэтому SysHook = ? (может быть 0, если компилятор Delphi сгенерирует код для инициализации локальных переменных). В Win2K+ SysHook = 0, вроде, проконает. А вот в Win9x - нет.


 
VMcL ©   (2003-05-31 03:54) [3]

>VMcL © (31.05.03 03:49)
Oops... Не обратил внимание на SysHook:HHook =0;. Примечание о компиляторе - на фиг с пляжа.


 
Dimaxx   (2003-06-01 23:24) [4]

Я, кстати, тоже писал общесистемный хук через ДЛЛ. В Вынь9х работало замечательно, а в ХР - нет.


 
VMcL ©   (2003-06-02 19:32) [5]

>Dimaxx (01.06.03 23:24)

Плохо писал. У меня работает.



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
7-10476
Vasiliy
2003-05-24 16:56
2003.08.04
Господа, подскажите как отследить вращение ролика мышки?


4-10491
dimonf
2003-05-30 19:54
2003.08.04
Как запретить одновременный запуск нескольких копий окна???


4-10526
Leon
2003-06-03 14:33
2003.08.04
Сохранение через реестр


14-10390
bobo
2003-07-17 09:48
2003.08.04
Посоветуйте компонент для работы с Excel 2000


14-10359
DenKop
2003-07-17 14:18
2003.08.04
Где взять простой ftp сервер для win.