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


Гость






Цитата
Ну для инфиума, например - TFRMMAN
Ага, щаззз smile.gif Ты знаешь, сколько Инфиум создает всякой гадости ДО TFrmMan.UnicodeClass? Вот лог создания окон (имена классов) при первом запуске QIP Infium (еще ничего не настроено - появляется только окно приглашения создать новый аккаунт или выбрать существующий):

madToolsMsgHandlerWindow$a28$40cf4c
madToolsMsgHandlerWindow$a28$40cf4c
TApplication
IME
TPUtilWindow
TPUtilWindow
TPUtilWindow
GDI+ Hook Window Class
IME
OleMainThreadWndClass
TPUtilWindow
TPUtilWindow
TPUtilWindow
TfrmCore.UnicodeClass
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
xxxxWorker
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
TPUtilWindow
TfrmMan.UnicodeClass
TInfuButton.UnicodeClass
TInfuComboBox.UnicodeClass
ComboLBox
Edit
CicMarshalWndClass
MSCTFIME UI
TInfuBitBtn.UnicodeClass
TInfuEdit.UnicodeClass
TInfuCheckBox.UnicodeClass
TPUtilWindow
TPUtilWindow
TfrmNewRegWiz.UnicodeClass
TPUtilWindow
IcsWndControlWindowClass
IcsWndControlWindowClass
IME
TfrmNewRegWiz.UnicodeClass
TInfuPanel.UnicodeClass
TInfuPanel.UnicodeClass
TInfuBitBtn.UnicodeClass
TInfuBitBtn.UnicodeClass
TInfuBitBtn.UnicodeClass
TInfuBitBtn.UnicodeClass
TInfuBitBtn.UnicodeClass
TInfuBitBtn.UnicodeClass
TInfuBitBtn.UnicodeClass
TInfuBitBtn.UnicodeClass

А ты говоришь, TFrmMan... Ну, убьешь ты его, и что? smile.gif Получишь окошко QIP-а об ошибке "не могу найти хендл объекта", так? Даже пробовать не буду, ибо знаю, что так и есть. Не зря столько служебных окон создается перед главным.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
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

 





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