Нужно на время заблокировать программе возможность перерисовывать содержимое определенного окна. Никаких сообщений окну не посылается, т.е. перерисовывается оно не по WM_PAINT, а по собственному внутреннему событию. Как это можно сделать? В идеале - нужно, чтобы оно сохраняло текущее изображение при сворачивании, изменении размера етс., но не добавляло ничего нового.
1. Найти, где хранится DC окна, куда идёт отрисовка, и временно подменить на что-нибудь левое (в идеале - на DC своего bitmap'а нужного размера в памяти) 2. найти процедуру, выполняющую отрисовку (обычно, хоть и не всегда, отрисовку делают за один раз), и воткнуть на её входе RET. Потом - восстановить (остановку потоков добавить по вкусу). 3. Дизассемблировать, выяснить, что за событие, и запатчить его в хлам.
o Подмена контекста, см. NtUserPrintWindow(). o Установка фильтра. Это всевозможные хуки, сабклассинг и пр. o Саспенд потоков.
litrovith У меня написано - в идеале оно должно перерисовываться, но не обновляться. Но можно и без перерисовки, время блокировки небольшое, авось пользователь и не заметит. Чорт, палево
Ну если , тогда хватит и суспенда потоков, или отключение монитора аха-ха-ха )))) В юзермоде НОРМАЛЬНО сделать такое нереально.
перехватываем CreateCompatibleDC() BitBlt()\StachBlt() - чего не хотите видеть в окне, ясно откуда берется(ресурсы\сеть..)берем айдихи\указатели на память - видем что создается контекст девайса, если из нашего сорса - запоминаем DC и при копировании просто ретурнимся. litrovith
litrovith для начала - о безпалевности речи небыло. а по поводу перехватов и без палева - многое в юм перехватывается так что вы со своей жаной будете кукать неделю и не понимать какова хера у вас контакты обновились а у других нет.)
ASMatic, флаг тебе в место, которым думаешь, умник! Какие контакты? у меня сроду антивируса не стояло на реальной системе, зачем мне твои контакты, мАлыш???
контакты были для примера, ав твой меня ваще не волнует - ты б лучше чот по теме чем флудить. *я перестал. ненавижу флудеров! да, еще "флаг тебе в место" - не вытаскивай, а то сквозить будет
Ezrah В качестве примера можно привести многослойные(анимированные) окна. Это например персонажи в ворде.
klzlk, в том, что в етом варианте всё расчитано на то, что авось пользователь и не заметит. В конце концов в юзермоде ето называется клоунада. Понятно, что каждый останется при своём мнении... ТС, читай пост #4
litrovith Типо в ядре шаришь =) https://damagelab.org/index.php?showtopic=21946 Авось авер заметит в принципе не реализуемо.