Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.04.17;
Скачать: [xml.tar.bz2];

Вниз

Как открыть своё окно как бы "модальным" поверх чужого?   Найти похожие ветки 

 
Студент   (2011-01-08 02:10) [0]

Нужно повесить своё окно как бы "модальным" поверх чужого...
Чтоб чужое "блокировалось" чтоль пока не закрыть моё (при нажатии на чужое окно оно не активируется а мигает заголовок моего - как если открыть "калькулятор - о программе" и пытаться нажать на сам калькулятор не закрыв about-окно)...
Известно HWND чужого окна (ну и моего разумеется тоже)...

Пробовал EnableWindow, SetParent, SetForegroundWindow...
Что-то это всё не то...

Прочёл где-то про некое SetSysModalWindow, но его почему-то не рекомендуют использовать, да и не объявлено у меня такой функции (не смог найти как её объявлять вообще)...


 
Германн ©   (2011-01-08 02:23) [1]


> Студент   (08.01.11 02:10)
>
> Нужно повесить своё окно как бы "модальным" поверх чужого.
> ..
> Чтоб чужое "блокировалось" чтоль пока не закрыть моё

ИШ тебе в ответе расскажет об том как в древнем Китае обращались с желающими "странного". :)

Проще всего наняться на работу в Microsoft и ввести в Windows сие ноу-хау. :)


 
Студент   (2011-01-08 02:30) [2]

Но другие-то программы как-то делают так?
Через Spy++ удалось узнать что чужому окну при этом добавляется WS_DISABLED...

Попробовал сделать так же с помощью EnableWindow "выключать" чужое при создании моего окна и "включать" чужое при закрытии моего - результат не совсем похож на то что других программ получается...

Больше ничего примечательного Spy++ вроде не показывал... А может и я не заметил просто...


> ИШ тебе в ответе расскажет об том как в древнем Китае обращались с желающими "странного". :)


Хм... Можно поподробнее и про это? :)


 
Германн ©   (2011-01-08 02:58) [3]


> Студент   (08.01.11 02:30) [2]
>
> Но другие-то программы как-то делают так?

Какие? Назови! Какие программы умеют блокировать доступ к окнам других программ"?


> Хм... Можно поподробнее и про это?

Это слишком "кровожадно" для меня.


 
Германн ©   (2011-01-08 03:15) [4]

Троян WinLock?


 
Студент   (2011-01-08 03:45) [5]

Да не блокировать... Я ж не зря в кавычках написал... Просто открываться модально к окну...
Почему сразу троян? Они мне не интересны, я люблю полезное делать...

Кажется понял... У тех других программ окна диалоговые... Диалоговые вроде через DialogBoxParam так можно...

А окно созданное CreateWindowEx никак не получится? Придётся диалоговое окно клеить?
Я не умею диалоговые делать, не работал с ими... В делфи есть редактор диалоговых окон как в MSVC++?


 
Германн ©   (2011-01-08 03:55) [6]


> Просто открываться модально к окну...

Такое пока не придумано. Модально к ОС можно.


 
Студент   (2011-01-08 03:59) [7]

Может я просто не так выражаюсь... Самоучка всё-таки, не знаю терминов нормальных... :)


> Модально к ОС


м... Это как вообще? Ни разу не видел...


 
Германн ©   (2011-01-08 04:18) [8]


> Германн ©   (08.01.11 03:55) [6]
>
>
> > Просто открываться модально к окну...
>
> Такое пока не придумано. Модально к ОС можно.
>

Вру. Можно.
Склероз, блин.
См. реализацию MessageBox.


 
Студент   (2011-01-08 05:51) [9]

MessageBox реализацию? Быть может вы имели ввиду DialogBox? Так там и есть этот DialogBoxParam...

Можно небольшой вопрос "оффтопом"?
Как профессионалы посоветуют поступать, если программа (точнее ОС при запуске программы) иногда выдаёт такое:

Ошибка приложения: "бла-бла неизвестное программное исключение бла-бла по адресу 0x........".

Было б название ошибки - я б его впечатал в поисковик... А вот что с "неизвестным"-то поделать? о___о


 
brother ©   (2011-01-08 06:25) [10]

> если программа

чья?


 
Плохиш ©   (2011-01-08 19:18) [11]


> Как профессионалы посоветуют поступать, если программа (точнее
> ОС при запуске программы) иногда выдаёт такое:
>
> Ошибка приложения: "бла-бла неизвестное программное исключение
> бла-бла по адресу 0x........".

Я просто выкидываю такие дерьмопроги.


 
DVM ©   (2011-01-08 19:47) [12]


> Германн ©   (08.01.11 04:18) [8]


> См. реализацию MessageBox.

это когда он устроится в MS там он и посмотрит :)

> Проще всего наняться на работу в Microsoft


 
Студент   (2011-01-09 06:00) [13]

Так что? Кроме как диалоговое окно + DialogBoxParam нет вариантов?


> чья?


Та что я пишу...
Но с этим я уже разобрался... Не подумал что моей программе может передаваться вместо "рабочей папки" непонятно что...

Кстати нашёл объявление SetSysModalWindow в WinUser.h... Шикарное объявление:

#define SetSysModalWindow(hWnd) (NULL)


 
DiamondShark ©   (2011-01-10 13:49) [14]


> Германн ©   (08.01.11 02:58) [3]
> > Студент   (08.01.11 02:30) [2]> > Но другие-то программы
> как-то делают так?Какие? Назови! Какие программы умеют блокировать
> доступ к окнам других программ"?

Такие, типа: "Отправь СМС на номер 12345, а то до форматирования винта осталось 78 секунд"


 
DiamondShark ©   (2011-01-10 13:55) [15]

Ребята из мелкософта не зря потрудились над тем, чтобы максимально затруднить задачу спереть чужой фокус и монополизировать фокус.

Если у тебя не троян-локер, то очень сильно пахнет "проблемой X, Y, Z".
Колись: с какой целью интересуешься?


 
DVM ©   (2011-01-10 14:44) [16]


> DiamondShark ©   (10.01.11 13:55) [15]


> Ребята из мелкософта не зря потрудились над тем, чтобы максимально
> затруднить задачу спереть чужой фокус и монополизировать
> фокус.

Сколько бы они не трудились, пока есть эксплорер и панель задач, будет и функция, переключающая задачи и делающая то что нужно, найти которую всегда можно. Раньше это была SwitchToThisWindow теперь другая, но кто хочет тот найдет.


 
DiamondShark ©   (2011-01-10 15:35) [17]


> DVM ©   (10.01.11 14:44) [16]

А я и не говорю, что это невозможно.
Более того, я даже не уверен, что майкрософт собирался решить проблему радикально (например, введя привилегии на вызов User-функций), видимо, они сочли вполне достаточным защититься лишь от неугомонных кулхацкеров, причём, без существенных проблем совместимости.

Речь о другом, о том, что серьёзные люди понимают, что хулиганство и рукожопие в среде с разделяемыми ресурсами -- это ад и израиль.
А школоту -- хлебом не корми, только дай бы чего-нибудь скырть.


 
Студент   (2011-01-12 11:53) [18]

DiamondShark, DVM, вы говорите загадками... %)

Ну не хочу я говорить что есть X... Слишком глупо будет выглядеть...

Как я уже разобрался все делают через Z - создают диалоговое окно и открывают его через DialogBoxParam...
А я не умею делать диалоговым окном, ну не делал я такого никогда... Да и редактором ресурсов вроде любой дурак попортить его может...

Вот и думаю... Можно ли сделать окно как я умею (CreateWindowEx) и получить тот же эффект что при DialogBoxParam получается...


 
Игорь Шевченко ©   (2011-01-12 12:06) [19]


> Можно ли сделать окно как я умею (CreateWindowEx) и получить
> тот же эффект что при DialogBoxParam получается...


нет, CreateWindow(Ex) не задает поведения окна.


 
DiamondShark ©   (2011-01-12 14:22) [20]


> Студент   (12.01.11 11:53) [18]

Если ты боишься за ресурсы, но требуется поведение DialogBoxParam, то, возможно, тебя спасёт DialogBoxIndirectParam


 
Leonid Troyanovsky ©   (2011-01-12 22:02) [21]


> Студент   (12.01.11 11:53) [18]

> Вот и думаю... Можно ли сделать окно как я умею (CreateWindowEx)
> и получить тот же эффект что при DialogBoxParam получается.

The DialogBoxParam function uses the CreateWindowEx function to create
the dialog box.

--
Regards, LVT.


 
Студент   (2011-01-17 17:23) [22]


> возможно, тебя спасёт DialogBoxIndirectParam


Спасибо, посмотрю...)


> The DialogBoxParam function uses the CreateWindowEx function
> to create the dialog box.


Это я видел... Понятно что оно использует CreateWindow, как по-другому-то...
Только как это пригодится в моём случае?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.04.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.004 c
15-1293842666
NailMan
2011-01-01 03:44
2011.04.17
автозапуск utorrent на win2008. нет оболочки


15-1292587835
Правильный$Вася
2010-12-17 15:10
2011.04.17
замена имени видюхи


2-1295279025
SamBrown
2011-01-17 18:43
2011.04.17
Как убрать колонки у VCL ListView (vsReport)


1-1252408144
bratel
2009-09-08 15:09
2011.04.17
на компе не работают программы на дельфи


2-1295205120
v_a_belousov
2011-01-16 22:12
2011.04.17
Перемещение объектов по дробной координате





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