![]() |
eXeL@B —› Вопросы новичков —› Всплывающее окно в Delphi |
Посл.ответ | Сообщение |
|
Создано: 06 марта 2013 20:34 · Личное сообщение · #1 |
|
Создано: 06 марта 2013 21:09 · Личное сообщение · #2 |
|
Создано: 06 марта 2013 21:31 · Личное сообщение · #3 |
|
Создано: 06 марта 2013 21:52 · Личное сообщение · #4 |
|
Создано: 06 марта 2013 22:03 · Личное сообщение · #5 |
|
Создано: 06 марта 2013 22:09 · Личное сообщение · #6 sapog93 Пробуй ставить бряк на ShowWindow и уже там смотри, что, откуда вызывается. ----- We do what we want because we can. ![]() |
|
Создано: 06 марта 2013 22:09 · Личное сообщение · #7 |
|
Создано: 09 марта 2013 20:23 · Личное сообщение · #8 Вообщем результаты. Отловил наг по bp TaskDialogIndirect. Но в этой функции только ручками убрать получается - меняю флаг в одном месте и все. Естественно, когда ее пропатчил, то наг ушел и все остальные сообщения тоже и ошибки сыпятся. Отловить откуда вызывается это окно так и не смог. По F12->Alt+K вот такая картина ![]() Я так понял своим нубским мозгом, что отдельный поток проверяет активацию, они чегой-то там синхронизируются. Как из стека потока выйти на вызов нага не допер. Вообще прога работает, только пришлось убить ExitProc (кажется так называется), потому что наг закрывает и программу как только нажмешь OK. Но теперь она вообще не закрывается, только через диспетчер. Хотелось бы нормально чтоб было, по сути ![]() Может подскажите куда рыть? (мануалы читаю, гугл знаю, хотя даже в гугле часто не могу найти описание какой нибудь функции, как было с той, что на картинке самая верхняя) ![]() |
|
Создано: 09 марта 2013 20:43 · Личное сообщение · #9 Читайте, читайте внимательно, что verdizela пишет ![]() Брякнитесь-смотрите в стеке, что за окошко. Если наг, то давим f8 до того момента, пока не попадем в коротенький цикл. Дальше ставим бряк на следующую команду после тела цикла, давим f9. В наге жмем любую кнопку, сработает бряк после цикла. Дальше гораздо проще будет найти место вызова этого окошка. ![]() |
|
Создано: 09 марта 2013 23:43 · Личное сообщение · #10 |
|
Создано: 10 марта 2013 00:52 · Личное сообщение · #11 Блин, меня эта гадость уже бесить начинает. Тыщу бряков допер как преодолеть, сам дурак что называется. Срабатывает bp ShowWindow. Вижу, что наг: ![]() nick8606 пишет: Если наг, то давим f8 до того момента, пока не попадем в коротенький цикл. Жмакал, жмакал - только по системным ходил, никаких коротких циклов. Потом бац! Наг нах! Хз откуда. Понимаю, что не догоняю, мож по стеку как отследить? ![]() |
|
Создано: 21 марта 2013 18:26 · Личное сообщение · #12 Всем здравствуйте! Наг таки победил. Не прошло и года ![]() ![]() ![]() Но теперь надо отследить таймер - прога сама закрывается ![]() ![]() ![]() ![]() |
|
Создано: 21 марта 2013 18:29 · Личное сообщение · #13 Копайте в сторону ExitProcess и TerminateProcess. Когда остановитесь на этих бряках - смотрите выше по стеку откуда был вызов ![]() |
|
Создано: 21 марта 2013 18:39 · Поправил: sapog93 · Личное сообщение · #14 О, точняк, спасиб - щас гляну Опять у меня залипуха со стеком ![]() ![]() |
|
Создано: 21 марта 2013 22:16 · Личное сообщение · #15 |
|
Создано: 22 марта 2013 01:34 · Поправил: sapog93 · Личное сообщение · #16 да у меня как-то не получается.. знаний не хватает. поэтому как могу фигачу и развиваюсь параллельно. Вот, допустим, алгоритм регистрации - я понял, что проверка идет в потоках, т.е. прога одновременно запускает их несколько штук и там проверяет все подряд.. Я попробовал сунуться: залез в такие дебри, ковырял два дня. Результат - большая пухлая голова. Простенькие программки, понятное дело, этим не страдают. Количеством потоков в смысле. Опять же - это я так понял, что проверка в потоках, потому что все время попадается thread.create, а на самом деле фик его знает.. Да и про потоки я имею смутное представление, а после загугливания вопросов только больше стало.. Поэтому пру дуром и пытаюсь вставлять палки в колеса ![]() Вот сейчас прочитал и подумал - человек мне дельные советы дает, а я фигню всякую выдумываю.. Пошел курить защиту ![]() ![]() |
|
Создано: 22 марта 2013 10:36 · Личное сообщение · #17 |
|
Создано: 22 марта 2013 12:22 · Поправил: crypto · Личное сообщение · #18 |
|
Создано: 25 марта 2013 23:31 · Личное сообщение · #19 crc1 попробовал - прога крашится на bp PostQuitMessage. без бряка стартует нормально (ну и закрывается через какое-то время + сегодня обратил внимание, что время всегда разное, может час работать нормально, а может сразу закрыться). crypto спасибо. я уже нашел строки. в idr они без рефа, ну я просто в олли брякнулся по адресу, где они лежат. а вот с таймерами.. я сразу в OnTimer залез. Таймеров штук 12, половина вроде считают время до закрытия, три точно отвечают за exit. в них просто идут вызовы, потоки открываются, закрываются плюс обнаружил дополнительную проверку.. вообщем курю мануалы. ![]() |
|
Создано: 18 апреля 2013 17:30 · Личное сообщение · #20 |
![]() |
eXeL@B —› Вопросы новичков —› Всплывающее окно в Delphi |
Эта тема закрыта. Ответы больше не принимаются. |