Текущий архив: 2011.04.17;
Скачать: CL | DM;
Вниз
Как открыть своё окно как бы "модальным" поверх чужого? Найти похожие ветки
← →
Студент (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;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.008 c