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

Вниз

Hook на создание окна.   Найти похожие ветки 

 
Lony   (2003-06-14 02:55) [0]

Проблема с хуком на создание окна. DLL не ипользую. Пробовал использовать WH_SHELL, не помогло, пробовал WH_GETMESSAGE+WM_CREATE, тоже не получил нужного результата. Да что, собственно, говорить, вот часть кода. Может кто знает, в чём проблема?

var
Form1: TForm1;
SysHook:HHOOK;
Wnd:HWND;
implementation

{$R *.dfm}

function SysMsgProc(Code:integer;wParam:word;lParam:longint):longint; stdcall;
begin
if code=HC_ACTION then
begin
Wnd:=TMsg(Pointer(lParam)^).hwnd;
if TMsg(Pointer(lParam)^).message=WM_CREATE then
MessageBox(0,"Хук ботает, а ты наслаждаешься!","Не стыдно?",0);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SysHook:=SetWindowsHookEx(WH_GETMESSAGE,@SysMsgProc,HInstance,0);
if SysHook<>0 then
MessageBox(0,"Хук установлен!","Поздравляю!",0)
else
MessageBox(0,"Дерьмовый твой хук!","Ты лажанулся!",0);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if UnHookWindowsHookEx(SysHook) then
( 0,"Хук снят!","Вух",0)
Проблема с хуком на создание окна. DLL не ипользую. Пробовал использовать WH_SHELL, не помогло, пробовал WH_GETMESSAGE+WM_CREATE, тоже не получил нужного результата. Да что, собственно, говорить, вот часть кода. Может кто знает, в чём проблема?

var
Form1: TForm1;
SysHook:HHOOK;
Wnd:HWND;
implementation

{$R *.dfm}

function SysMsgProc(Code:integer;wParam:word;lParam:longint):longint; stdcall;
begin
if code=HC_ACTION then
begin
Wnd:=TMsg(Pointer(lParam)^).hwnd;
if TMsg(Pointer(lParam)^).message=WM_CREATE then
MessageBox(0,"Хук ботает, а ты наслаждаешься!","Не стыдно?",0);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SysHook:=SetWindowsHookEx(WH_GETMESSAGE,@SysMsgProc,HInstance,0);
if SysHook<>0 then
MessageBox(0,"Хук установлен!","Поздравляю!",0)
else
MessageBox(0,"Дерьмовый твой хук!","Ты лажанулся!",0);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if UnHookWindowsHookEx(SysHook) then
MessageBox(0,"Хук снят!","Вух",0);
end;


 
_ALEXey_   (2003-06-14 08:26) [1]

Хук WH_CBT, code=HCBT_CREATEWND. У меня это в ДЛЛ-ке, нормально работает. В ехе-шнике не знаю, будет или нет работать ?!?!?!


 
Song   (2003-06-14 11:42) [2]

Устанавливаете хук системный -
SysHook:=SetWindowsHookEx(WH_GETMESSAGE,@SysMsgProc,HInstance, 0);

А Call-Back ф-ию помещаете в проект. Теорию почитать надобна бы..


 
Lony   (2003-06-14 12:03) [3]

А как установить системный хук? Через DLL всё получается, но это ещё лишние 350Kb.


 
Song   (2003-06-14 22:05) [4]

Системный хук устанавливается в dll. Только в dll!


 
jonni   (2003-06-15 05:02) [5]

Системный хук устанавливается в dll. Только в dll!


eto tochno.........


 
Lony   (2003-06-15 11:02) [6]

Спасибо, тогда всё путём.


 
Morfein   (2003-06-15 15:42) [7]

to Song: под Win9x нет никаких "только в dll!". Функцию можно и из этого же модуля брать... только его надо отдельно загрузить через LoadLibrary(pchar(ParamStr(0)));


 
DVM   (2003-06-15 15:55) [8]


> А как установить системный хук? Через DLL всё получается,
> но это ещё лишние 350Kb.

350 kb? Такая dll займет килобайт 10 от силы.


 
DVM   (2003-06-15 15:58) [9]

Создание топ-левел окон можно отлавливать и без dll во всех версиях Windows. Нужные хуки уже стоят в Shell32.dll.


 
jonni   (2003-06-15 16:24) [10]

a podrobnee mozno??


 
DVM   (2003-06-15 16:28) [11]


> jonni ©

Напомни на мыло, пришлю несложный пример.



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

Форум: "Потрепаться";
Текущий архив: 2003.08.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
14-45005
PsoFT
2003-07-29 12:26
2003.08.14
Привет !


14-45055
Viktor Kushnir
2003-07-28 08:32
2003.08.14
Delphi 6 Service Packs - Где найти?


14-45119
Ich Hasse
2003-06-11 13:57
2003.08.14
Изменение шрифта у TabControl


14-44997
Basja
2003-07-29 10:49
2003.08.14
Опять хабы и т.п.


14-45000
Кот Бегемот
2003-07-29 08:15
2003.08.14
Почему у Microsoft ничего не выйдет с .Net





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский