Главная страница
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-45147
gn
2003-07-30 16:23
2003.08.14
Norton Utilities for DOS


14-45084
Akvilon
2003-06-14 14:21
2003.08.14
Ловушка WH_KEYBOARD


14-45023
Evg12
2003-07-29 00:06
2003.08.14
Простой вопрос на который вы легко ответите


14-45122
Alexander
2003-05-25 09:06
2003.08.14
Есть COM-расширение контекстного меню проводника от стороннего


14-44958
abc
2003-07-23 13:59
2003.08.14
как быстро получить список значений поля Field в СomboBox?