Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.042 c
2-1163146941
Access
2006-11-10 11:22
2006.12.03
События (свойства) ListView


15-1163282259
Petr V. Abramov
2006-11-12 00:57
2006.12.03
А что подразумевается под "опытом работы в команде"?


15-1163671607
ANT1
2006-11-16 13:06
2006.12.03
Лицензии


15-1163494338
Calibr
2006-11-14 11:52
2006.12.03
Порт сети?


2-1163580837
Sanyok
2006-11-15 11:53
2006.12.03
По правте пожалуйста этот запрос не правильно делит





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский