![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как открыть своё окно как бы "модальным" поверх чужого? [D7, WinXP]
Студент © (2011-01-08 02:10:00)Нужно повесить своё окно как бы "модальным" поверх чужого...
Чтоб чужое "блокировалось" чтоль пока не закрыть моё (при нажатии на чужое окно оно не активируется а мигает заголовок моего - как если открыть "калькулятор - о программе" и пытаться нажать на сам калькулятор не закрыв about-окно)...
Известно HWND чужого окна (ну и моего разумеется тоже)...
Пробовал EnableWindow, SetParent, SetForegroundWindow...
Что-то это всё не то...
Прочёл где-то про некое SetSysModalWindow, но его почему-то не рекомендуют использовать, да и не объявлено у меня такой функции (не смог найти как её объявлять вообще)...
Студент (2011-01-17 17:23:00) [1]
> возможно, тебя спасёт DialogBoxIndirectParam
Спасибо, посмотрю...)
> The DialogBoxParam function uses the CreateWindowEx function
> to create the dialog box.
Это я видел... Понятно что оно использует CreateWindow, как по-другому-то...
Только как это пригодится в моём случае?
Leonid Troyanovsky (2011-01-12 22:02:00) [2]
> Студент (12.01.11 11:53) [18]
> Вот и думаю... Можно ли сделать окно как я умею (CreateWindowEx)
> и получить тот же эффект что при DialogBoxParam получается.
The DialogBoxParam function uses the CreateWindowEx function to create
the dialog box.
--
Regards, LVT.
DiamondShark (2011-01-12 14:22:00) [3]
> Студент (12.01.11 11:53) [18]
Если ты боишься за ресурсы, но требуется поведение DialogBoxParam, то, возможно, тебя спасёт DialogBoxIndirectParam
Игорь Шевченко (2011-01-12 12:06:00) [4]
> Можно ли сделать окно как я умею (CreateWindowEx) и получить
> тот же эффект что при DialogBoxParam получается...
нет, CreateWindow(Ex) не задает поведения окна.
Студент (2011-01-12 11:53:00) [5]DiamondShark, DVM, вы говорите загадками... %)
Ну не хочу я говорить что есть X... Слишком глупо будет выглядеть...
Как я уже разобрался все делают через Z - создают диалоговое окно и открывают его через DialogBoxParam...
А я не умею делать диалоговым окном, ну не делал я такого никогда... Да и редактором ресурсов вроде любой дурак попортить его может...
Вот и думаю... Можно ли сделать окно как я умею (CreateWindowEx) и получить тот же эффект что при DialogBoxParam получается...
DiamondShark (2011-01-10 15:35:00) [6]
> DVM © (10.01.11 14:44) [16]
А я и не говорю, что это невозможно.
Более того, я даже не уверен, что майкрософт собирался решить проблему радикально (например, введя привилегии на вызов User-функций), видимо, они сочли вполне достаточным защититься лишь от неугомонных кулхацкеров, причём, без существенных проблем совместимости.
Речь о другом, о том, что серьёзные люди понимают, что хулиганство и рукожопие в среде с разделяемыми ресурсами -- это ад и израиль.
А школоту -- хлебом не корми, только дай бы чего-нибудь скырть.
DVM (2011-01-10 14:44:00) [7]
> DiamondShark © (10.01.11 13:55) [15]
> Ребята из мелкософта не зря потрудились над тем, чтобы максимально
> затруднить задачу спереть чужой фокус и монополизировать
> фокус.
Сколько бы они не трудились, пока есть эксплорер и панель задач, будет и функция, переключающая задачи и делающая то что нужно, найти которую всегда можно. Раньше это была SwitchToThisWindow теперь другая, но кто хочет тот найдет.
DiamondShark (2011-01-10 13:55:00) [8]Ребята из мелкософта не зря потрудились над тем, чтобы максимально затруднить задачу спереть чужой фокус и монополизировать фокус.
Если у тебя не троян-локер, то очень сильно пахнет "проблемой X, Y, Z".
Колись: с какой целью интересуешься?
DiamondShark (2011-01-10 13:49:00) [9]
> Германн © (08.01.11 02:58) [3]
> > Студент (08.01.11 02:30) [2]> > Но другие-то программы
> как-то делают так?Какие? Назови! Какие программы умеют блокировать
> доступ к окнам других программ"?
Такие, типа: "Отправь СМС на номер 12345, а то до форматирования винта осталось 78 секунд"
Студент (2011-01-09 06:00:00) [10]Так что? Кроме как диалоговое окно + DialogBoxParam нет вариантов?
> чья?
Та что я пишу...
Но с этим я уже разобрался... Не подумал что моей программе может передаваться вместо "рабочей папки" непонятно что...
Кстати нашёл объявление SetSysModalWindow в WinUser.h... Шикарное объявление:
#define SetSysModalWindow(hWnd) (NULL)
DVM (2011-01-08 19:47:00) [11]
> Германн © (08.01.11 04:18) [8]
> См. реализацию MessageBox.
это когда он устроится в MS там он и посмотрит :)
> Проще всего наняться на работу в Microsoft
Плохиш (2011-01-08 19:18:00) [12]
> Как профессионалы посоветуют поступать, если программа (точнее
> ОС при запуске программы) иногда выдаёт такое:
>
> Ошибка приложения: "бла-бла неизвестное программное исключение
> бла-бла по адресу 0x........".
Я просто выкидываю такие дерьмопроги.
brother (2011-01-08 06:25:00) [13]> если программа
чья?
Студент (2011-01-08 05:51:00) [14]MessageBox реализацию? Быть может вы имели ввиду DialogBox? Так там и есть этот DialogBoxParam...
Можно небольшой вопрос "оффтопом"?
Как профессионалы посоветуют поступать, если программа (точнее ОС при запуске программы) иногда выдаёт такое:
Ошибка приложения: " бла-бланеизвестное программное исключение бла-блапо адресу 0x........ ".
Было б название ошибки - я б его впечатал в поисковик... А вот что с "неизвестным"-то поделать? о___о
Германн (2011-01-08 04:18:00) [15]
> Германн © (08.01.11 03:55) [6]
>
>
> > Просто открываться модально к окну...
>
> Такое пока не придумано. Модально к ОС можно.
>
Вру. Можно.
Склероз, блин.
См. реализацию MessageBox.
Студент (2011-01-08 03:59:00) [16]Может я просто не так выражаюсь... Самоучка всё-таки, не знаю терминов нормальных... :)
> Модально к ОС
м... Это как вообще? Ни разу не видел...
Германн (2011-01-08 03:55:00) [17]
> Просто открываться модально к окну...
Такое пока не придумано. Модально к ОС можно.
Студент (2011-01-08 03:45:00) [18]Да не блокировать... Я ж не зря в кавычках написал... Просто открываться модально к окну...
Почему сразу троян? Они мне не интересны, я люблю полезное делать...
Кажется понял... У тех других программ окна диалоговые... Диалоговые вроде через DialogBoxParam так можно...
А окно созданное CreateWindowEx никак не получится? Придётся диалоговое окно клеить?
Я не умею диалоговые делать, не работал с ими... В делфи есть редактор диалоговых окон как в MSVC++?
Германн (2011-01-08 03:15:00) [19]Троян WinLock?
Германн (2011-01-08 02:58:00) [20]
> Студент (08.01.11 02:30) [2]
>
> Но другие-то программы как-то делают так?
Какие? Назови! Какие программы умеют блокировать доступ к окнам других программ"?
> Хм... Можно поподробнее и про это?
Это слишком "кровожадно" для меня.