Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2008, 20:05   #11
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

у Delphi программ (и у самой Delphi наверно тоже) помимо главной формы есть ещё одна форма, которая невидима и она имеет класс TApplication и случайно не это ли самое окно ты скрываешь.
rpy3uH вне форума Ответить с цитированием
Старый 09.10.2008, 21:11   #12
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Я незнаю какое окно скрываю. Знаю лиш то что у меня есть хендл окна которое собиралось свернутся и я его словил в HCBT хуке. И как мне теперь руками его нормально свернуть я пока что незнаю.

Последний раз редактировалось BOBAH13; 10.10.2008 в 13:14.
BOBAH13 вне форума Ответить с цитированием
Старый 03.08.2009, 12:54   #13
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Приветствую.
Ставлю хук глобальный (как? как обычно).

HCBT хук вот обработчик

Код:
case HCBT_MINMAX:
        {
            HWND wnd = /*some window*/;
            if(IsWindow((HWND)wParam) && wnd)
            {
                switch(LOWORD(lParam))
                {
                case SW_MINIMIZE:
                case SW_SHOWMINIMIZED:
                case SW_FORCEMINIMIZE:
                case SW_SHOWMINNOACTIVE:
                    {
                        SendMessage(wnd, xxx, wParam, xxx);
                    }
                    break;
Делал вывод в текстовый файл, при отловке сообщений. Дело в том, что в XP проблем не возникает, в Vista, все наоборот. В висте, к примеру, при сворачивании/восстановлении окна IE в текст. файл не выводится сообщение о том, что этот хук HCBT_MINMAX сработал, т.е. такое ощущение что просто его как и не было.

Может для установки хука (корректного) в системах типа Виста, требуются какие то права или еще чего.
Спасибо.
BOBAH13 вне форума Ответить с цитированием
Старый 03.08.2009, 13:01   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А может в Висте этот хук не действует так как в ХР? Мож его там изменили? В МСДН по этот хук в висте ниче не сказано?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.08.2009, 13:08   #15
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А может в Висте этот хук не действует так как в ХР? Мож его там изменили? В МСДН по этот хук в висте ниче не сказано?
Да вродебы нет, щас еще раз гляну. Дело в том, что к примеру RocketDock программа, его ставит и все нормально функционирует.

Я тут постю еще на одном форуме, в маленьком кругу людей, короче кто андестенд тому вот, палец болит печатать на русском

Цитата:
I've decompiled RocketDock.dll but I can't understand the whole picture of WindowProc asm code.

I just wonder, at first in the Window Proc RocketDock do this

1. Find ROCKETDOCK window
2. Check if the minimized window is visible and not iconic
3. Call OpenProcess to get BaseName of application's window
4. Then try to get properties of Rocketdock's window "FILTER", may be it checks if window can be minimized into the dock.
5. PostMessage to let the dock about minimizing window.

I just can't understand why they use GetAsyncKeyState in the hook, and I can not find a "swtich()" section, where thet check if it is HCBT_MINMAX and then minimize it.

Thanks.

Edit:

Okay, I think found it:

CODE
mov eax, [esp+4E8h+nCode]
sub eax, 1 // 1 - it is HCBT_MINMAX
mov esi, [esp+4E8h+uMsg]
jz short loc_10001B05


But it seems that this hook doesn't work for IE (may be some other apps). May be I should install hook or load library using another way, or may be some aspects which I should know about, because it works perfect in Xp.
BOBAH13 вне форума Ответить с цитированием
Старый 03.08.2009, 13:26   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
файл не выводится сообщение о том, что этот хук HCBT_MINMAX сработал, т.е. такое ощущение что просто его как и не было.
Извини за недоверие. но можно глянуть код хука, т.е. интересует место где ты пишешь в файл.
и еще, глупая конечно мысль, но - может быть кто-то ставит хук на это после запуска твоей проги и запрещает передачу его далее по цепочке, потому к тебе и не доходит? А RocketDock.dll либо по другому действует либо ловит моменты когда нужно переставить свой хук первым в очереди...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.08.2009, 13:37   #17
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Программа тестируется на чистой висте. Никаких таких вещей не может быть, т.к. к примеру почему от того же Explorer все ок, окна ловятся. Пишу в файл как обычно, отдельная функция типа

Код:
FILE *f;
fopen_s(&f, ...
if(f)
{
fprintf(...
}
Ну короче ясно. Опять таки это работает, т.к. появляется файл при сворачивании других окон. так что...
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отследить нажатие клавиши для отдельного окна Черничный Win Api 12 13.09.2008 20:47
Перенаправление портов ADSoft Безопасность, Шифрование 2 05.01.2008 00:30
Перенаправление потоков Carbon Win Api 5 25.11.2007 14:46
Автоматическое перенаправление на др. стр. Рустам PHP 2 17.11.2007 15:43
TWebBrowser-как перехватить команду скрипта для закрытия окна и не дать ему закрыться Вовик Компоненты Delphi 5 03.10.2007 12:17