IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Хук на HCBT_CREATEWND
сообщение
Сообщение #1


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Привет всем smile.gif

Надо поставить хук на создание окон. Нашел (и слегка модифицировал) такой код:

var HookHandle: hHook;

function CBTProc(Code: integer; WParam: word; LParam: Integer): Longint; stdcall;
type PCBT_CREATEWND=^CBT_CREATEWND;
var s: pchar;
z: PCBT_CREATEWND;
ok: Integer;
s2:string;
i:byte;
begin
if Code<0 then begin
Result := CallNextHookEx(HookHandle, code, WParam, LParam);
exit;
end;
case Code of
HCBT_CREATEWND: begin
z:=PCBT_CREATEWND(LParam);
s:=z.lpcs.lpszName;
if s<>nil then begin
s2:='';
for i:=1 to length(s) do begin
s2:=s2+s^;
inc(s);
end;
if pos('Блокнот',s2)>0 then begin
Result:=1;
exit;
end;
end;
end;
end;
Result := 0;
end;

begin
HookHandle := SetWindowsHookEx(WH_CBT, @CBTProc, HInstance, 0);
end;


Я сделал перевод из pchar в string, до этого там была какая-то жутко тупая проверка, которая почему-то работала. Этот код, как я понял, распространяется только на моё приложение. hookhandle>=0.

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Ловить HCBT_CREATEWND, и вместо того, чтобы просто вернуть 1

Ну по сути result:=1 и терминатор делают одно и то же, только для первого надо для каждого приложения искать нужные классы, а тут раз и всё smile.gif


Цитата
Да, а что насчет работы под Win64? Уверен?


Попробовал на своей win7 home 64 - перехват работает хорошо - нужные окна виду не показывают. Но вот PostMessage, кажется, недокидывает до основной программы сообщение, но это уже наверное мой косяк.. или не мой..)

Цитата

это точно так же снесет QIP...


Легким движением руки 20 строк превращаются...)))

Ну вроде пока всё работает, спасибо smile.gif


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Unconnected   Хук на HCBT_CREATEWND   14.09.2010 3:07
volvo   Хм. Интересно, куда подевались все вопросительные …   14.09.2010 3:59
Unconnected   В том, что код не работает как надо ) (по идее, пр…   14.09.2010 4:05
volvo   С чего бы это? Заголовок окна Блокнота создается п…   14.09.2010 4:59
Unconnected   Нуу.. я изменил code на WH_Shell, этого достаточно…   14.09.2010 5:22
volvo   Нет, конечно. Но меня посетила шальная мысль: а че…   14.09.2010 5:35
Unconnected   Дык это только в примере блокнот, может я ещё чего…   14.09.2010 19:09
volvo   Вот именно потому, что нужна универсальность - теб…   14.09.2010 20:25
Unconnected   Я бы выбрал перехватывать HCBT_CREATEWND. В ориг…   14.09.2010 20:31
volvo   Что значит, нет Хэндла? Я где-то тебе сказал про т…   14.09.2010 21:21
Unconnected   А у меня есть хитроумная функция, которая выдаст п…   14.09.2010 21:27
volvo   универсальность нужна..и Приблизительно получится …   14.09.2010 21:48
Unconnected   И правда, по классу лучше определять.. что-то я не…   14.09.2010 22:23
volvo   Можешь прикрепить весь проект?   14.09.2010 22:27
Unconnected   Он на "любимом" KOL... :) Надо? Но ловуш…   14.09.2010 22:29
volvo   Ну, поскольку Дельфи у меня под рукой нет, и не бу…   14.09.2010 23:10
Unconnected   Какое ценное лирическое отступление! Так зна…   14.09.2010 23:19
volvo   Хм... Надо было все-таки исходники попросить у теб…   14.09.2010 23:26
Unconnected   Ту би контин, блин.. Короче, такая dll: library p…   15.09.2010 0:10
volvo   Заставил ты меня все-таки написать работающий хук …   15.09.2010 1:24
Unconnected   У меня почти то же самое было, только это работает…   15.09.2010 1:34
volvo   Можно (через Project->Resources->New->Use…   15.09.2010 2:01
Unconnected   Простенький ксор перед добавлением в ресурсы, и по…   15.09.2010 14:49
Unconnected   Ещё вопрос, относительно "обратной связи…   15.09.2010 19:43
volvo   Ага, размечтался :) Вот здесь посмотри, как возвра…   15.09.2010 21:28
Unconnected   :blink: офигеть, из-за одной переменной столько ко…   15.09.2010 21:43
volvo   Угу. Если получилось - удалил, ты имеешь в виду? М…   16.09.2010 2:22
Unconnected   Устанавливается один раз, в библиотеке массив из…   16.09.2010 2:28
volvo   Если нужно просто возвращать индекс заблокированно…   16.09.2010 2:54
Unconnected   Вот так шлю: const wm_user=$0400; //в библио…   16.09.2010 3:39
volvo   :blink: Это еще зачем? MSDN явно говорит:Ты регис…   16.09.2010 3:58
Unconnected   Очевидное-невероятное, блин! Передаю в sethook…   16.09.2010 19:02
volvo   В общем, если не хочешь потерять еще три дня, и по…   16.09.2010 19:31
Unconnected   Короче на данный момент я остановился на текстовик…   16.09.2010 21:06
volvo   :blink: Смотри, как выглядит DLL с расшаренной па…   16.09.2010 21:21
Unconnected   Кажется понял, в библиотеке просто делается указат…   17.09.2010 19:15
volvo   Вообще-то DLL-ке все равно, как ее подгружают, хот…   17.09.2010 19:34
volvo   Все-таки решил добавить. Интересная и познавательн…   17.09.2010 22:34
Unconnected   Блин, ковырялся с дллами - и заснул) И как я её …   17.09.2010 23:22
volvo   Вот ты будешь смеяться, но: прекрасно удаляет ту…   18.09.2010 0:37
Unconnected   Да, действительно. Мою, впрочем, тоже удаляет о…   18.09.2010 1:25
Unconnected   И ещё незадача.. я тут пробовал на разные приложен…   18.09.2010 13:54
volvo   "Некоторые" - это какие, например? (жела…   18.09.2010 14:06
Unconnected   Например мессенджер QIP, в журнале такое: Ошибка п…   18.09.2010 14:10
volvo   И какой класс окна ты запрещаешь, чтоб "погас…   18.09.2010 14:14
Unconnected   Ну для инфиума, например - TFRMMAN (в полном назва…   18.09.2010 14:32
volvo   Ага, щаззз :) Ты знаешь, сколько Инфиум создает вс…   18.09.2010 16:26
Unconnected   :blink: Фигассе я наивный... А можно название прог…   18.09.2010 17:07
volvo   Я тебе лучше покажу, как DLL-ку изменить, чтоб так…   18.09.2010 17:22
Unconnected   Хм.. попробовал тормозить все классы, стоящие до T…   18.09.2010 18:42
volvo   Неправда :) if (pos(UpperCase('tapplic…   18.09.2010 20:16
Unconnected   Кажется, поправку на ветер забыл :) У меня багрепо…   19.09.2010 3:49
volvo   Можешь показать, как именно ты "приостанавлив…   19.09.2010 16:53
Unconnected   //uses tlhelp32; function KillTask(ExeFileName: s…   19.09.2010 17:18
volvo   Ну не знаю... Ловить HCBT_CREATEWND, и вместо того…   19.09.2010 19:44
Snake_B   это точно так же снесет QIP... Останется только п…   20.09.2010 3:57
Unconnected   Ловить HCBT_CREATEWND, и вместо того, чтобы просто…   19.09.2010 21:18
volvo   Попробуй посмотреть вот тут: http://rouse.drkb.ru/…   20.09.2010 5:28
Snake_B   Попробуй посмотреть вот тут: http://rouse.drkb.ru…   20.09.2010 5:38
volvo   Ну да, трею, разумеется...   20.09.2010 6:48


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 9.09.2025 1:48
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name