Форум: "Потрепаться";
Текущий архив: 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.008 c