|
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 8
|
|
Получить текст из MessageBox12.04.2012, 21:02. Показов 3621. Ответов 19
Метки нет (Все метки)
Есть проблема получения текста из MessageBox другого процесса, проблема эта - Delphi, на нем написана программа.
Ставлю хук WH_CBT, дальше HCBT_ACTIVATE и т.д., тут собственно проблем нету. Пробовал через SendMessage (WM_GETTEXT) и GetWindowText, но глухо. Как же это осуществить?
0
|
|
| 12.04.2012, 21:02 | |
|
Ответы с готовыми решениями:
19
Текст как в MessageBox Разноцветный текст в MessageBox |
|
|
|||||||||||
| 13.04.2012, 14:10 | |||||||||||
|
Slavvkko, SendMessage (WM_GETTEXT) GetWindowText ну и что ты этим хотел достичь?
У меседж бокса текст на кнопке(ах) их может быть до 3-х штук, текст в строке(это контрол окна, разве он GetWindowText получается, конечно нет он вытаскивается с помощью GetDlgItemText, т.к. ID вещь очень неопределённая вот я и сделал пробор ID от 100000 до 0, как раз всё выхватываем). Кроме всего прочего у месседжбокса может быть а может и нет тайтл окна, вот его ты мог максимум вытащить своими методами. Ниже 2 проекта (верней один просто как проект выскакивающего меседжбокса, а вот второй проект вытащит все тексты из первого попавшегося MessageBox а в системе, при желании код легко изменить для вытаскивания инфы из всех MessageBox-ов присутсвующих в данный момент в системе) Выскакивающий меседж бокс
1
|
|||||||||||
|
|
||
| 13.04.2012, 14:13 | ||
|
PS:Хук тебе для твоей затие вообще не нужен, одно НО создатель программы
0
|
||
|
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 8
|
|
| 13.04.2012, 14:27 [ТС] | |
|
Хук нужен что бы отловить момент появления окна.
Спасибо за помощь, но, как выяснилось окно создается не функцией MessageBox, а ShowMessage .Через Spy+ посмотрел - у него нету окон с текстом (static, например). Есть только Кнопка. Похоже там текст рисуется через DrawText, верно? Как в таком случае получить текст? Перехватывать DrawText?
0
|
|
|
|
||
| 13.04.2012, 14:32 | ||
Решение наверное такое - отловить выскочившее окно, загнать в буфер битмапом и распознать текст, DrawText никогда не перехватывал, хотя по идее WH_SYSMSGFILTER должен как то реагировать на вывод даже пусть и DrawText.
0
|
||
|
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 8
|
||||||
| 13.04.2012, 14:42 [ТС] | ||||||
|
Пример такого окна (друг написал ShowMessage на Delphi):
Клацнул CTRL+C по окну, получил:
0
|
||||||
|
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 8
|
|
| 13.04.2012, 14:50 [ТС] | |
|
Вот
(добавляем длину месаги)
0
|
|
|
|
|||||||
| 13.04.2012, 15:43 | |||||||
|
Slavvkko, покопай GetBoxResultsHRC
Вот код который отлавливает HDC твоей TMessageForm
Текущая кодовая страница: 1251 TMessageForm WND TEXT : Project1 HDC captured : 0xAE01198D Для продолжения нажмите любую клавишу . . . Добавлено через 1 минуту
1
|
|||||||
|
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 8
|
|
| 13.04.2012, 15:55 [ТС] | |
|
"(добавляем длину месаги)" было написано для обхода ограничения длинны сообщения на форуме
![]() Мне нужно прочитать этот текст. По HDC я думаю ничего не получится, лучше "скопировать" окно. Я совсем недавно только начал учить winapi, и потому мало что знаю .Поэтому тут вопрос: Как отправить окну CTRL+C, надо что то типа "эмуляции" нажатий клавиатуры?
0
|
|
|
|
||||||
| 13.04.2012, 16:12 | ||||||
|
Кстати вот вариант "издевательства на меседж боксом"
0
|
||||||
|
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 8
|
|||
| 13.04.2012, 18:46 [ТС] | |||
|
Программа на предыдущей странице. Или вы про программу, которой я ищу текст? Добавлено через 4 минуты .
0
|
|||
|
26 / 26 / 3
Регистрация: 13.04.2012
Сообщений: 61
|
|
| 13.04.2012, 19:46 | |
|
Текст рисуется с помощь DrawTextA.
Помимо текста сообщения DrawText'ом рисуется и "ОК" на кнопке Думаю, без внедрения в процесс и патчинга участка кода, вызвыающего сообщение, никак...
0
|
|
|
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 8
|
|
| 13.04.2012, 20:02 [ТС] | |
|
0
|
|
|
26 / 26 / 3
Регистрация: 13.04.2012
Сообщений: 61
|
|||
| 14.04.2012, 00:32 | |||
|
Но если очень нужно, то я уже писал про WM_COPY, можно оспользовать keybd_event, или SendInput, но последние 2 просто эмулируют нажатие клавишь.
0
|
|||
|
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 8
|
|
| 14.04.2012, 01:47 [ТС] | |
|
0
|
|
|
26 / 26 / 3
Регистрация: 13.04.2012
Сообщений: 61
|
|
| 14.04.2012, 04:55 | |
|
Щас сообразим
Добавлено через 1 час 20 минут SendMessag'ем не получается отправить сообщение... Как вариант, установить на окно фокус - SetForegroundWindow и через keybd_event или SendInput нажать клавиши
0
|
|
| 14.04.2012, 04:55 | |
|
Помогаю со студенческими работами здесь
20
Как правильно передавать текст в MessageBox? Как в MessageBox выровнять текст по центру
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|