Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как показать окно диалога поверх всех окон 
:(
    Опции темы
ANTON_AL
Дата 15.12.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 292
Регистрация: 27.1.2007

Репутация: нет
Всего: нет



Доброго дня!

Проблема следующая:
Приложение B вызывается другим приложением A из консоли.

В приложении B окна нет, вместо окна используется модальное диалоговое окно.

В Windows XP это диалоговое окно показывается на переднем плане.
В Windows Vista Home Premium такого не происходит. Диалог появляется на заднем плане.

Использую MFC.


Никакие SetForegroundWindow, BringWindowToTop, SetActiveWindow не помогают.

Нид хелп!!!
PM MAIL   Вверх
Andrey44
Дата 16.12.2008, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



SetWindowPos() - и будет тебе счастье!


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
ANTON_AL
Дата 16.12.2008, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 292
Регистрация: 27.1.2007

Репутация: нет
Всего: нет



К сожалению, на Windows Vista Home Premium это не работает.

Есть интересная ссылка на эту тему:
http://www.eggheadcafe.com/software/aspnet...om-elevate.aspx

...high right processes and normal right
processes run on the same UI desktop, it is possible for the low right
hacky process to send message to the high right processes.(For legacy
reason, Windows GUI system did not have per-process or per-window security
constraint) This is called shatter attack.

To minimize this shatter attack, Vista introduced the UIPI which does not
allow low right process to send message to the high right processes.



Это не очень радует. Похоже, что такая возможность запрещена на уровне операционной системы. . .
PM MAIL   Вверх
Andrey44
Дата 17.12.2008, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



ANTON_AL, почемуто у меня в висте SetWindowPos с флагом HWND_TOPMOST прекрасно работает

Добавлено через 3 минуты и 2 секунды
Цитата(ANTON_AL @  16.12.2008,  17:52 Найти цитируемый пост)
...high right processes and normal right
processes run on the same UI desktop, it is possible for the low right
hacky process to send message to the high right processes.(For legacy
reason, Windows GUI system did not have per-process or per-window security
constraint) This is called shatter attack.

To minimize this shatter attack, Vista introduced the UIPI which does not
allow low right process to send message to the high right processes.


и к чему вы это написали?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0432 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.