Сейчас на форуме: jinoweb, bartolomeo (+5 невидимых) |
![]() |
eXeL@B —› Программирование —› Диалоговое наг окно в VB |
Посл.ответ | Сообщение |
|
Создано: 20 ноября 2016 18:59 · Личное сообщение · #1 Это в некотором роде продолжение ранее мной начатой и уже закрытой темы. В программе на VB два наг окна. 1-й - на таймере - мне удалось его победить, а 2-й - диалоговый, ждет нажатия кнопки, - никак не поддается! С помощью функций CreateWindowExA и ShowWindow я отлавливаю, где оно создается и открывается. Манипулируя стилями ExtStyle и style , а также параметром ShowState , мне удается убрать с экрана наг окно - но программа всё-равно стоит, ждёт ответа от этого окна! Может быть я не те параметры давал функциям? Но даже если и найдутся подходящие, этот способ какой-то нехороший! Поскольку эти функции вызываются из библиотеки VB , а значит её придётся курочить потом. Может у кого-нибудь на этот счет есть мысль - подскажите, пожалуйста! ![]() |
|
Создано: 20 ноября 2016 20:22 · Личное сообщение · #2 |
|
Создано: 20 ноября 2016 21:09 · Личное сообщение · #3 ksol пишет: С помощью функций CreateWindowExA и ShowWindow я отлавливаю, где оно создается и открывается. Манипулируя стилями ExtStyle и style , а также параметром ShowState , мне удается убрать с экрана наг окно - но программа всё-равно стоит, ждёт ответа от этого окна! если наёшл вызов, зачем колдовать со стилями? Просто вызов запатчить и всё. Добавлено спустя 4 минуты ksol пишет: Поскольку эти функции вызываются из библиотеки VB Возьми, например, VB Decompiler найди вызов из кода, до библиотеки и там отрежь и создание и показ ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 21 ноября 2016 17:53 · Личное сообщение · #4 Isaev пишет: Просто вызов запатчить и вс Так вызов-то не в коде программы, а в коде библиотеки VB , а найти к нему вход из кода программы пока не удаётся. VB Decompiler хороший инструмент, но не всемогущий! Он показывает статический состав структуры программы, а дерево связи не даёт. Приходится искать какому элементу (окну, форме, кнопке) соответствует код и где он. difexacaw пишет: Ждёт, что дальше, какая собственно задача ? Ждёт, чтобы я нажал на ней кнопку, - а мне надо это окно вместе с её кнопкой сничтожить, не нажимая кнопку! ![]() |
|
Создано: 22 ноября 2016 08:52 · Личное сообщение · #5 |
|
Создано: 22 ноября 2016 11:56 · Личное сообщение · #6 |
|
Создано: 22 ноября 2016 13:15 · Личное сообщение · #7 |
|
Создано: 22 ноября 2016 18:32 · Личное сообщение · #8 dosprog пишет: программа хоть, полезная? Программа старая, но необходимая - используется в работе, но эти наги... В двух ярких информационных нагах пишет чья она. 1-й держался примерно 10с таймером, время срабатывания задавалось в свойствах до запуска программы. Я нашел в коде момент запуска Timer1.Enabled=True, сделал отсюда выноску на свободное место и скомпилер перед ним Interval=5 мс - этот наг теперь почти незаметно промелькивает. Но затем через некоторое время появляется модальное наг окно, оно уже требует нажатия кнопки. После нажатия оно исчезает, программа успокаивается и дальше нормально работает. VT-x пишет: FindWindowEx - > PostMessage, не? Может быть и так! Хотя, CreateWindowExA мне даёт хэндл окна, и его наверное можно было бы закрыть через Close(). Но дело осложняется тем, что эта функция вызывается из библиотеки VB, а выноской кода я её испорчу! ![]() |
|
Создано: 22 ноября 2016 20:26 · Личное сообщение · #9 |
|
Создано: 23 ноября 2016 18:18 · Личное сообщение · #10 |
![]() |
eXeL@B —› Программирование —› Диалоговое наг окно в VB |
Эта тема закрыта. Ответы больше не принимаются. |