Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

hook??

2.0K
04 января 2003 года
Elf
19 / / 11.12.2002
с новым годом все кто читают это и не только!!

маленький вопрос:
я хочу поставить WH_CBT хук на создание/разрушение окон верхнего уровня.
как это сделать?
спасибо.
если можно с примерчиком.
на си или на делфи - без разницы
(главное не на ВБ 8))
еще раз спасибо.
2.0K
04 января 2003 года
Elf
19 / / 11.12.2002
Очень СПАСИБО, но мне это известно.
Известна и причина по которой нельзя садить неглобальный хук в прога, а именно в ДЛЛ...

Но можете ли вы привести пример проги срабатывающей на СОЗДАНИИ/РАЗРУШЕНИИ окон верхнего уровня?
Я знаю, что либо через WH_CBT или WH_SHELL или WH_CALLWNDPROC, но как именно?

Спасибо!
Если не трудно с ПРИМЕРОМ
2.0K
04 января 2003 года
Elf
19 / / 11.12.2002
Очень СПАСИБО, но мне это известно.
Известна и причина по которой нельзя садить неглобальный хук в прога, а именно в ДЛЛ...

Но можете ли вы привести пример проги срабатывающей на СОЗДАНИИ/РАЗРУШЕНИИ окон верхнего уровня?
Я знаю, что либо через WH_CBT или WH_SHELL или WH_CALLWNDPROC, но как именно?

Спасибо!
Если не трудно с ПРИМЕРОМ
6.0K
18 ноября 2003 года
piople
1 / / 18.11.2003
Цитата:

Вообщем вот исходничек DLL'ки, вообщем не сложно разберешься:

library hook_dll;

uses
Windows,
Messages,
Forms;

var
SysHook : HHook = 0;
Wnd : Hwnd = 0;

function SysMsgProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
begin
if code = HSHELL_WINDOWCREATED then
begin

//Сдесь делаем с окном все что нужно

end;

Result:=CallNextHookEx(SysHook, Code, wParam, lParam);
end;

procedure hook(switch : Boolean) export; stdcall;
begin
if switch=true then
begin
SysHook := SetWindowsHookEx(WH_SHELL, @SysMsgProc, hInstance, 0);

if SysHook <> 0 then MessageBox(0, 'HOOK установлен !', 'Message', 0)
else MessageBox(0, 'HOOK установить не удалось !', 'Message', 0);
end
else
begin
if UnhookWindowsHookEx(SysHook) then MessageBox(0, 'HOOK снят !','Message', 0)
else MessageBox(0, 'HOOK снять не удалось !', 'Message', 0);
SysHook := 0;
end;
end;

exports hook;

begin
end.


Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог