|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
22.08.2015, 11:44 | #1 |
Пользователь
Регистрация: 29.12.2011
Сообщений: 12
|
Помогите программно прочитать текст из ShowMessage
Помогите программно прочитать текст из ShowMessage(); которое создаётся браузером, например TChromium или TWebBrowser.
|
22.08.2015, 11:47 | #2 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
FindWindow, и читай
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
22.08.2015, 12:31 | #3 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
22.08.2015, 13:47 | #4 |
Пользователь
Регистрация: 29.12.2011
Сообщений: 12
|
Имя окна можно прочитать не проблема а вот как текст в нём....?
Да оно того стоит! Если этот текст больше не от куда взять! Последний раз редактировалось _Casper_; 22.08.2015 в 13:51. |
22.08.2015, 14:46 | #5 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Проверил на Application.MessageBox().
Тут текст выводится в оконном элементе, значит, его можно достать. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
22.08.2015, 16:57 | #6 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
_Casper_, можете с помощью Spy++ посмотреть есть ли дескриптор у надписи в окне, которое появляется после вызова ShowMessage(). Но большая вероятность того, что его там просто не будет.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
22.08.2015, 21:39 | #7 | |
Старожил
Регистрация: 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 для их перехвата и обработки. Цитата:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 22.08.2015 в 21:42. |
|
22.08.2015, 22:28 | #8 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
23.08.2015, 00:02 | #9 |
Пользователь
Регистрация: 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 новей не нашёл, поюзал, но нечего хорошего не нашёл |
23.08.2015, 00:10 | #10 |
Старожил
Регистрация: 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. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
определенный текст 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 |