Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.08.14;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
14-45034
SuperUmnik
2003-07-28 13:27
2003.08.14
Кто нить занимается электроприводами и моделированием агрегатов


14-45086
Fantom[RU]
2003-06-14 20:52
2003.08.14
TEdit


14-45100
BJValentine
2003-06-12 17:14
2003.08.14
Клики мыши


14-44999
Карелин Артем
2003-07-29 13:45
2003.08.14
В небольшую фирму требуется админ.


14-44977
Дрын
2003-07-24 06:05
2003.08.14
Мастерам а также любителям клубной музыки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский