Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
ВнизЗапрет перемещений других окон в выбранной области экрана Найти похожие ветки
← →
Elen © (2006-11-15 11:27) [0]Доброго времени суток Господа!
Вопрос у меня Вам покажется скорее всего весьма странный и все же :
Есть сторонняя программа, которая при запуске прилипает к верху экрана а-ля alTop. Все кто с ней работает ругаются на одну странную особенность - Другие окна запущенных программ не могут быть перетасканы в область экрана, занимаемую этой прогой. Т.Е. рабочий стол укорачивается примерно на треть экрана. А наши работают в Акаде и для черчения им нужен весь экран. Вопрос в том - как эта прога заграбастывает чисто под себя часть экрана, запрещает перетаскивание других окон других прог над собой. И разворачивание всех других окон "на весь экран" на самом деле происходит до низа той проги. Второй вопрос - как от этого избавиться? (исходники отсутствуют).
С помощью Spy я определяю что всю область рабочего стола до запуска злополучной проги занимает SysListView32 в Progmane. После запуска Все имеющиеся на экране окна автоматически меняют позицию становясь под окно той проги. Когда окно ее сворачивается на экране остается область, занимаемая ее окном, но все другие окна в эту область перетащить нельзя. Spy показывает что эта область пренадлежит Program Manager, т.е окна SysListView32 и SHELLDLL_DefView поменяли свои размеры.
Идея была такая -для SysListView32 и SHELLDLL_DefView поменять позицию и габариты :
h:=FindWindow("Progman","Program Manager");
h:=FindWindowEx(h,0,"SHELLDLL_DefView","");
SetWindowPos(h,HWND_BOTTOM,0,0,Screen.Width,Screen.Height,SWP_FRAMECHANGED);
Но это не дает нужных результатов
Как это правильно поправить или понять, как это сделано?
(Sorry за может непонятно заданный вопрос...)
← →
clickmaker © (2006-11-15 11:30) [1]я боюсь, что она делает SystemParametersInfo(SPI_SETWORKAREA
так же как таксбар
← →
Elen © (2006-11-15 11:42) [2]
> clickmaker
Как этого избежать? (я пока ща в SDK полезу, спасибо за намек)
← →
Elen © (2006-11-15 11:48) [3]
> clickmaker
YESSSSSS!!!!! Спасибо, колега, большое. Разобралась и все сработало 8)
← →
clickmaker © (2006-11-15 11:49) [4]
> Как этого избежать?
а зачем она, собственно? И что, при работе с акадом, ее нельзя временно усыпить? Ну или хотя бы принудительно нулевую высоту ей выставить
← →
Anatoly Podgoretsky © (2006-11-15 11:57) [5]> Elen (15.11.2006 11:27:00) [0]
Я бы сказал, что эта программа троян.
Ну как ты уже сказала - она во первых занимает всю облать стола с помощью SysListView32
Во вторых если она бы была написана правильно, то есть регистрировалась как AppBar то и в этом случае эту область все равно занять бы не удалось. Если имеет отключаемое свойство Прилипать, то запретить, если нет, то единственный способ не запускать, лучше никогда.
Если же такой возможности нет, то мириться с ее поведением.
← →
Elen © (2006-11-15 12:01) [6]
> а зачем она, собственно? И что, при работе с акадом, ее
> нельзя временно усыпить? Ну или хотя бы принудительно нулевую
> высоту ей выставить
Автор - дятел. Серьезно, не подумал о пользователях. И временно усыпить не получается - область остается.
> Anatoly Podgoretsky
Мириться не буду - уж очень автор достал. На уступки не идет - порет, гад, свою политику... Ну в общем ладно, если интересно из положения выхожу так :
SystemParametersInfo(SPI_SETWORKAREA,0,@screenRect,SPIF_SENDCHANGE);
Работает. Пускай теперь висит сзади.
Всем спасибо тема закрыта!
← →
Anatoly Podgoretsky © (2006-11-15 12:04) [7]Elen © (15.11.06 12:01) [6]
Если враг не сдается, то мы его его же оружием.
← →
Anatoly Podgoretsky © (2006-11-15 12:05) [8]> Elen (15.11.2006 12:01:06) [6]
> Автор - дятел.
Это точно.
← →
Elen © (2006-11-15 12:09) [9]
> Если враг не сдается, то мы его его же оружием
;) Другого выхода нет. Там еще столько багов мне придется за него исправлять... Может и задам потом пару вопросиков...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.057 c