Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |  |
Ага. Но для начала можно на кроликах потренироваться.. 05.03.04 09:42 Число просмотров: 1378
Автор: Killer{R} <Dmitry> Статус: Elderman
|
В смысле сделать свою прогу которая создает окно с кучей чайлдов и поставить хук на самого себя. Это будет проще потому что не надо будет извращатся с передачей данных от одного процесса к другому.
Кстати есть еще идея реализовать перехват всех APIшных GDI функций, и передавать на другую сторону просто их коды и параметры (этакий RPC устроить). Тока наверно это еще сложнее выйдет и еще не известно на какие грабли можно напороться.
|
|
<programming>
|
[Pascal] Господа программеры, многие точно должны это знать... 05.03.04 08:51
Автор: Darkhelmet Статус: Незарегистрированный пользователь
|
Если естьвозможность киньте сырец с реализацией отслеживания какой регион перерисовывается у активного окна... Думаю с использованием
GetUpdateRgn... или с GetUpdateRect.. Очень нужно, все мои подуги реализовать сие, не совсем получаются. Не возвращает регион окошка который перерисовывается и все тут!
P.S. Сильно не пинайте за простой вопрос.. Но очень нужно сие реализовать!
|
 |
Это самое.. 05.03.04 09:29
Автор: Killer{R} <Dmitry> Статус: Elderman
|
|
GetUpdateRect должен вызываться непосредственн перед обработкой WM_PAINT после того как система послала жту мессагу окну. В противном случае (если будешь просто от балды вызывать GetUpdateRect для какого нить окна) скорее всего будешь получать нулевой регион. Потому что сразу после обработки этой мессаги у окна нету UpdateRegion'а.
|
 |  |
Получается нужно перехватывать сообщение.. Блин, как не... 05.03.04 09:34
Автор: Darkhelmet Статус: Незарегистрированный пользователь
|
|
Получается нужно перехватывать сообщение.. Блин, как не охота Hook писать.. =(
|
 |  |  |
Ага. Но для начала можно на кроликах потренироваться.. 05.03.04 09:42
Автор: Killer{R} <Dmitry> Статус: Elderman
|
В смысле сделать свою прогу которая создает окно с кучей чайлдов и поставить хук на самого себя. Это будет проще потому что не надо будет извращатся с передачей данных от одного процесса к другому.
Кстати есть еще идея реализовать перехват всех APIшных GDI функций, и передавать на другую сторону просто их коды и параметры (этакий RPC устроить). Тока наверно это еще сложнее выйдет и еще не известно на какие грабли можно напороться.
|
 |  |  |  |
А попроще ничего нету? =) 05.03.04 11:11
Автор: Darkhelmet Статус: Незарегистрированный пользователь
|
Блин и почему все так криво сделано? Неужели поудобней не сделать доступ к этим объектам... Microsoft чем думает я не знаю?
Слушай а вызывать GetUpdateRGN, нужно быть в его потоке?
|
 |  |  |  |  |
Ну не знаю. Имхо тут ниче особо сложного и извратного нету -... 05.03.04 15:36
Автор: Killer{R} <Dmitry> Статус: Elderman
|
> Блин и почему все так криво сделано? Неужели поудобней не > сделать доступ к этим объектам... Microsoft чем думает я не > знаю? Ну не знаю. Имхо тут ниче особо сложного и извратного нету - это уже как говорится дело техники
> Слушай а вызывать GetUpdateRGN, нужно быть в его потоке? Наверно в его процессе. Хотя может и нет - HWND оно ведь глобальное, пофиг в каком процессе. Если нет то проще - тебе достаточно только передавать из процедуры хука HWND своему основному процессу, затем ждать пока он отработает и продолжать обработку мессаги дальше. Это можно тем же SendMessage сделать.
|
 |  |  |  |  |
Мелкософт просто выжимает бабло, это давно понятно ;-( 05.03.04 11:53
Автор: HandleX <Александр М.> Статус: The Elderman
|
> Блин и почему все так криво сделано? Неужели поудобней не > сделать доступ к этим объектам... Microsoft чем думает я не > знаю? Subj. В доброе старое время оконная графика была достаточно тормозной штукой, поэтому боролись за каждый такт... Туннелирование снижает производительность... Хотя зачатки уже были в WinNT4, когда при создании WindowStation зарезервировали параметр, который как бы должен был указывать на драйвер, в который должна была отрисовываться вся графика... Отсюда до туннелирования пол-шага. Однако они выпустили NT4 Terminal Server Edition, в котором уже было всё круто, но незадокументировано, Privat, короче — бабло на бочку и администрируй сколько хочешь удалённо ;-)
А в функции CreateWindowStation параметр dwReserved остался до сих пор Reserved, даже в XP.
|
|
|