Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 22.08.2015, 11:44   #1
_Casper_
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 12
По умолчанию Помогите программно прочитать текст из ShowMessage

Помогите программно прочитать текст из ShowMessage(); которое создаётся браузером, например TChromium или TWebBrowser.
_Casper_ вне форума
Старый 22.08.2015, 11:47   #2
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

FindWindow, и читай
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума
Старый 22.08.2015, 12:31   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
программно прочитать текст из ShowMessage
а оно того стоит? куча сложного трудноотлаживаемого winapi-кода с такой фигнёй на выходе...
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума
Старый 22.08.2015, 13:47   #4
_Casper_
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от JUDAS Посмотреть сообщение
FindWindow, и читай
Имя окна можно прочитать не проблема а вот как текст в нём....?

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а оно того стоит? куча сложного трудноотлаживаемого winapi-кода с такой фигнёй на выходе...
Да оно того стоит! Если этот текст больше не от куда взять!

Последний раз редактировалось _Casper_; 22.08.2015 в 13:51.
_Casper_ вне форума
Старый 22.08.2015, 14:46   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Проверил на Application.MessageBox().
Тут текст выводится в оконном элементе, значит, его можно достать.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума
Старый 22.08.2015, 16:57   #6
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

_Casper_, можете с помощью Spy++ посмотреть есть ли дескриптор у надписи в окне, которое появляется после вызова ShowMessage(). Но большая вероятность того, что его там просто не будет.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума
Старый 22.08.2015, 21:39   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Какой еще Application.MessageBox? Речь вроде про JS alert в браузерах. http://www.programmersforum.ru/showthread.php?t=281614

Если автор все правильно понял, а то может это вообще просто свой диалог на JS/HTML, тогда DOM смотрите.

Но да, это плохой способ, лучше ищите другие варианты, анализируйте JS код и HTTP запросы (Fiddler и т.п.), смотрите откуда берется эта информация. Или посмотрите документацию по компонентам. Не знаю насчет Дельфийского TChromium, но в CefSharp (и других аналогах на Chromium/WebKit типа Awesomium) были события типа JsDialogHandler для их перехвата и обработки.

Цитата:
Имя окна можно прочитать не проблема а вот как текст в нём....?
WM_GETTEXT
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 22.08.2015 в 21:42.
Alex11223 вне форума
Старый 22.08.2015, 22:28   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Какой еще Application.MessageBox? Речь вроде про JS alert в браузерах.
я предположил, что алерт как раз и показывается функцией MessageBox. Согласен, что не во всех браузерах. Но если аффтару приспичило - проверит сам.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума
Старый 23.08.2015, 00:02   #9
_Casper_
Пользователь
 
Регистрация: 29.12.2011
Сообщений: 12
По умолчанию

WM_GETTEXT - пробовал вот 2 примера, что нашёл в инете.

var
s, ss: string;
ForeWnd,FocusWnd:HWnd;
p:PChar;

h := WindowFromPoint(Mouse.CursorPos);
SetLength(s, SEndMessage(h, WM_GETTEXTLENGTH, 0, 0)+1);
SEndMessage(h, WM_GETTEXT, length(s), Integer(PChar(s))); SetLength(s, lStrLen(PChar(s)));
Label1.Caption := s;


ForeWnd:=GetForegroundWindow;
FocusWnd:=GetFocus;
p:=StrAlloc(20);
SendMessage(FocusWnd,WM_GETTEXT,WPa ram(20),LParam(p));
ss:=p;
label2.Caption:=ss;


Для примера создал showmessage('Test');

При наведении курсора мышки на различные компоненты показывает их текст, из showmessage показывает заголовок и кнопку а вот текст не хочет.

Насчёт SPY++ 10 Version новей не нашёл, поюзал, но нечего хорошего не нашёл
Изображения
Тип файла: jpg showmessage.jpg (67.8 Кб, 57 просмотров)
_Casper_ вне форума
Старый 23.08.2015, 00:10   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну видимо там текст просто рисуется чем-то типа DrawText и все, никакого компонента его хранящего нет.

Так что вряд ли его как-то так получите, только OCR.

Вообще ShowMessage это вроде чисто Дельфийская форма, а не обертка над нативными месседжбоксами. Выше ж речь не про ShowMessage была.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 23.08.2015 в 00:13.
Alex11223 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определенный текст WebBrowser + ShowMessage beegl Работа с сетью в Delphi 11 10.01.2013 13:01
Как прочитать текст с статус бара чужой программы? fevz Win Api 1 09.03.2012 17:44
Прочитать под текст Хайдом HellMercenariess Свободное общение 6 22.08.2009 15:12
Как программно прочитать данные из едита другой программы xakkkkker Общие вопросы Delphi 1 15.03.2009 12:13
Прочитать текст из Word'а NeBrit Microsoft Office Word 2 09.12.2007 12:48