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  +


А у меня есть хитроумная функция, которая выдаст путь к файлу по хэндлу smile.gif

uses tlhelp32;
Function HandtoPath(H: HWND): String;
Var
Pid:Cardinal;
M: TModuleEntry32;
HSnapshot: THandle;
Begin
Result:='';
GetWindowThreadProcessId(H,@Pid);
HSnapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,Pid);
If HSnapshot=-1 Then Exit;
M.DwSize:=SizeOf(TModuleEntry32);
If Module32First(HSnapshot,M) Then Result:=M.SzExePath;
CloseHandle(HSnapshot);
End;


Приблизительно получится понять, что запустилось..

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


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  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

 





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