Форум: "WinAPI";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];
ВнизСистемные ловушки и VCL Найти похожие ветки
← →
ikar (2001-12-08 13:51) [0]Необходимо вызвать VCL форму из своей ловушки.
Возможноли и как зарегистрировать свою ловушку из своего exe файла.
← →
VladD2 (2001-12-10 00:41) [1]Ловушка это Hook что ли? Hook если да, то какая облатсь видимости. Я так понял чужие приложения. Да? Если так, то...
Возможноли и как зарегистрировать свою ловушку из своего exe файла.
Нет. Веренее не совсем. Для этого Hook нужно засунить в длл. Но exe-шник нужен для запуска этого Hook-а. Ну, а далее запускай форму, только помни, что главное коно приложения в длл-и (у Дельфи) не создано.
← →
Digitman (2001-12-10 08:25) [2]>VladD2
"Для этого Hook нужно засунить в длл" - а что, без DLL при генерации хука никак не обойтись, по-твоему ?
← →
ikar (2001-12-10 09:10) [3]Ловушка этр Hook. Нужно вызывать свой VCL код из своей ловушки. Пытался засунуть ловушку в свой exe, регистрироваться не хочет.
← →
nikkie (2001-12-10 10:10) [4]>ikar
видимо, hook у тебя системный. помещай hook в dll. проблем с тем, чтобы создать vcl форму в dll нет. только при таком подходе будешь создавать окно для каждого процесса, в котором решишь его показать. жуть...
другое дело, если тебе нужно иметь только одно окно. как тебе сказал VladD2, все равно у тебя есть exe для установки этого hook"a - в нем и помещай форму. а дальше тебе надо передать данные из процесса, в котором твой hook активизировался в процесс, который hook установил. смотри какие есть возможности по ipc (можно найти свое окно и послать message, можно через sockets, named pipes, file mapping).
← →
Fellomena (2001-12-10 11:00) [5]
var
SysHook : HHook = 0;
Wnd : Hwnd = 0;
procedure Hook666() export; stdcall;
begin
//Запустить ловушку.
SysHook := SetWindowsHookEx(WH_GETMESSAGE,
@SysMsgProc, HInstance, 0);
end;
{
//Отключить ловушку.
UnhookWindowsHookEx(SysHook);
SysHook := 0;
}
end;
В процедуре SysMsgProc пишешь обработчик и вызов формы
← →
Raptor (2001-12-10 22:29) [6]Привет!
2Fellomena
Не все так просто. :-)))
Если ловушка системная, то как правильно указал nikkie ее нужно помещать в отдельную ДЛЛ. И вообще в ловушках VCL не совсем желательна. Вернее, даже совсем нежелательна. :-))
Лучше все писать на чистом API.
Raptor.
← →
VladD2 (2001-12-11 05:03) [7]>Digitman
> "Для этого Hook нужно засунить в длл" - а что, без DLL при генерации
> хука никак не обойтись, по-твоему ?
Ну, если хук локальный, то можно и обойтись, а если нужно перехватывать события в других процессах, то не обойтись точно.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c