Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.14;
Скачать: CL | DM;

Вниз

HOOK problem s.Помогите !!!   Найти похожие ветки 

 
sucer   (2003-06-12 17:25) [0]

Пишу hook который при запуске одной програмой(Назовем ее "A")
другой прогрммы(Назавем ее "B") сворачиваль бы "B" в панель
задач т.е SW_MINIMIZE.
Ставлю HOOK WH_CBT на все окна.
Перехватывает создание нужного мне окна и подравляю
структуру описывающую окно аналагично как и в CreateWindow.
Проблема в том что мои "Подравки" несовсем работаю
Работает измнение кординат т.е например я подправляю структуру
так что окно рисуется с точки (70,20) размером 20*20.
А мне нужно подправить style-окна.Я его тоже подправляю...
но почемуто несрабатывает...
Можеть быть надо подравлять что-то другое?


Мастера помогите решить проблему!!!



процедура HOOK:
function SysMsgProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
cbtcreatewnd:^CBT_CREATEWND;
begin
Result:=0;
if code=HCBT_CREATEWND then
begin
cbtcreatewnd:=pointer(lparam);
if cbtcreatewnd^.lpcs^.lpszName="APPLE" then
begin
cbtcreatewnd^.lpcs^.x:=20;
cbtcreatewnd^.lpcs^.y:=70;
cbtcreatewnd^.lpcs^.cx:=20;
cbtcreatewnd^.lpcs^.cy:=20;
cbtcreatewnd^.lpcs^.style:=WS_BORDER+WS_MINIMIZE;
//cbtcreatewnd^.lpcs^.dwExStyle:=WS_EX_LEFTSCROLLBAR ;
( cbtcreatewnd^.lpcs^.hInstance,SW_MINIMIZE) Пишу hook который при запуске одной програмой(Назовем ее "A")
другой прогрммы(Назавем ее "B") сворачиваль бы "B" в панель
задач т.е SW_MINIMIZE.
Ставлю HOOK WH_CBT на все окна.
Перехватывает создание нужного мне окна и подравляю
структуру описывающую окно аналагично как и в CreateWindow.
Проблема в том что мои "Подравки" несовсем работаю
Работает измнение кординат т.е например я подправляю структуру
так что окно рисуется с точки (70,20) размером 20*20.
А мне нужно подправить style-окна.Я его тоже подправляю...
но почемуто несрабатывает...
Можеть быть надо подравлять что-то другое?


Мастера помогите решить проблему!!!



процедура HOOK:
function SysMsgProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
cbtcreatewnd:^CBT_CREATEWND;
begin
Result:=0;
if code=HCBT_CREATEWND then
begin
cbtcreatewnd:=pointer(lparam);
if cbtcreatewnd^.lpcs^.lpszName="APPLE" then
begin
cbtcreatewnd^.lpcs^.x:=20;
cbtcreatewnd^.lpcs^.y:=70;
cbtcreatewnd^.lpcs^.cx:=20;
cbtcreatewnd^.lpcs^.cy:=20;
cbtcreatewnd^.lpcs^.style:=WS_BORDER+WS_MINIMIZE;
//cbtcreatewnd^.lpcs^.dwExStyle:=WS_EX_LEFTSCROLLBAR ;
ShowWindow(cbtcreatewnd^.lpcs^.hInstance,SW_MINIMIZE);
end;
end;
end;


 
Song ©   (2003-06-12 18:31) [1]

Дело в том, что, возможно, что в момент создания окна, ещё не известны размеры. Например:

With TForm.Create(Self) Do
Begin
Left:=10;
Top:=10;
Width:=100;
Height:=100;
End;

Дак вот твой хук перехватывает момент TPanel.Create(Self), а раземеры я назначаю позже, они уже твоему хуку неизвестны.


 
Song ©   (2003-06-12 18:31) [2]

Ну TForm, а не TPanel конечно :)


 
sucer   (2003-06-12 21:45) [3]

А зачем мне размеры.Мне нужно его свернуть


 
Morfein ©   (2003-06-13 02:43) [4]

Попробуй
cbtcreatewnd^.lpcs^.Style:=cbtcreatewnd^.lpcs^.Style or WS_MINIMIZE;


 
sucer   (2003-06-13 09:50) [5]

Неработает


 
Song ©   (2003-06-13 11:53) [6]

Дык блин ты попробуй свернуть окно на событии TForm.onCreate и не запуская TApplication.Run Ну чего получилось?


 
sucer   (2003-06-13 17:18) [7]

Наверное я бы поставил эти события если бы это были
не экзешники:)



Страницы: 1 вся ветка

Текущий архив: 2003.08.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
14-45054
Soft
2003-07-27 19:45
2003.08.14
Публикация


14-44959
Kirill
2002-11-15 13:17
2003.08.14
HTTP запрос


14-44964
SPIRIT
2003-07-30 13:04
2003.08.14
Truble with fastreport


14-45076
Sheng
2003-07-26 19:05
2003.08.14
А что, уже и краки сюда мона вылаживать?


14-44983
nobody
2003-07-29 19:39
2003.08.14
переменная