Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
2 / 2 / 2
Регистрация: 04.07.2010
Сообщений: 66

Получить HTML из TWebBrowser

01.02.2011, 15:22. Показов 4045. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте!

У меня на форме есть компонент WebBrowser.
У него я гружу http://bla-bla.com

Дальше мне нада работать с хтмл кодом(заполение полей и т.п.).

в дельфи это можна сделать например так:
Delphi
1
2
3
4
5
...
html_t:variant;
...
html_t := WebBrowser1.OleObject.Dcoment.Forms.Items[0].elements;
...
в с++ билдере нет OleObject

как тоже самое сделать в С++ Builder??

спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.02.2011, 15:22
Ответы с готовыми решениями:

Получить HTML-код из TWebBrowser
uses ActiveX; function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean; var ps: IPersistStreamInit; ...

Загрузить HTML в TWebbrowser
Метод принимает название Webbrowser'а и строку html затем сохраняет его и считает в Webbrowser procedure ShowHtml(WebBrowser:...

TWebBrowser и поля HTML формы.
Как программно, с помощью TWebBrowser заполнить поле <textarea> и в списке (аналог дельфовскому TListBox'у) выбрать значение ? И еще...

1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
01.02.2011, 17:28
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от maxteam Посмотреть сообщение
Дальше мне нада работать с хтмл кодом
- если с кодом - грузите страницу в мемо, и работайте.
Примеры заполнения полей
1.
Вот как заполняется TEXTAREA:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
void __fastcall TForm1::Button5Click(TObject *Sender)
{
IHTMLDocument2 *pHTMLDocument = NULL;
 
if (SUCCEEDED(WB->Document->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&pHTMLDocument)))
{
  if(pHTMLDocument!= NULL )
   {
 
    IHTMLElementCollection *pAll = NULL;
 
  if ( SUCCEEDED ( pHTMLDocument -> get_all ( &pAll ) ) && pAll )
    {
     TVariant vIndex = 0;
     IDispatch *pDisp1 = NULL;
 
  TVariant vName1 = "txtSM"; // ?? ???? ???? <TEXTAREA name=text ....
 
  WideString iniString = "текст смски"; //  TEXTAREA
 
 if ( SUCCEEDED ( pAll -> item ( vName1, vIndex, &pDisp1 ) ) && pDisp1 )
{
 IHTMLTextAreaElement *pInput = NULL;
 
 if ( SUCCEEDED ( pDisp1 -> QueryInterface ( IID_IHTMLTextAreaElement, ( LPVOID* )&pInput ) ) && pInput )
 {
   pInput -> put_value ( iniString );
   pInput -> Release ();
 }
 
 pDisp1 -> Release ();
}
}
pAll -> Release ();
}
}
}
// WB это CppWebBrowser. 
2.
// Заполнение полей ввода и нажатие кнопки на HTML странице 
void __fastcall TForm1::ClickButton(String Name){// нажатие кнопки на форме. Name - имя кнопки в html коде
  TCppWebBrowser *WB=CWB;
  if( WB->Document )    {
    TComInterface<IHTMLDocument2> pDocument;
    WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDocument);
    if( pDocument )        {
      TComInterface<IHTMLElementCollection> pCollection;
      pDocument->get_all(&pCollection);
      if( pCollection )            {
        TComInterface<IDispatch> pDisp;
        pCollection->item(TVariant(WideString(Name)), TVariant(0), &pDisp);
        if( pDisp )                {
          TComInterface<IHTMLElement> pElement;
          pDisp->QueryInterface(IID_IHTMLElement, (LPVOID*)&pElement);
          if( pElement )                    {
            pElement->click();
          }
        }
      }
    }
  }
} //---------------------------------------------------------------------------------
 
void __fastcall TForm1::FillForm(String Name, String Data){// заполнение поля на форме. Name - имя поля в html коде. 
  TCppWebBrowser *WB=CWB;
  CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2>                  pDoc;
  CComQIPtr<IHTMLElementCollection, &IID_IHTMLElementCollection>  pColl;
  CComQIPtr<IDispatch, &IID_IDispatch>                            pTmpDisp;
  CComQIPtr<IHTMLInputElement, &IID_IHTMLInputElement>            pElement;
  CComQIPtr<IDispatch, &IID_IDispatch>                            pDisp;
  if ( SUCCEEDED (WB->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pDoc)))    {
    if ( SUCCEEDED (pDoc->get_all(&pColl)))                 {
      if ( SUCCEEDED (pColl->item(TVariant(WideString(Name)), TVariant(0), &pDisp))) {
        pElement = pDisp;
        pElement->put_value(WideString(Data));
      }
    }
  }
}
// Так же выбирается Radio Button. 
// каждой позиции соответсвует значение - найти его можно в html коде.
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2011, 17:28
Помогаю со студенческими работами здесь

Получение html кода страницы из TWebBrowser
Собственно вопрос, как можно получить html код с TWebBrowser, если можно с комментариями, что есть что... Добавлено через 54 минуты ...

Работа с TWebBrowser. Парсинг HTML кода.
что-то у меня не получается :( можете помочь сразу готовый написать. есть несколько ссылок типа: ...

Вставить свой html код в TWebBrowser.
Подробно компонент не разбирал из-за отсутствия времени и болезни. Код я сам смогу вставить, только приведите маленький пример..

Открыть созраненный файл HTML через TWebBrowser
Здравствуйте! Как в Delphi можно открыть html сохраненную страничку! Ну я думаю что проще через браузер, но может есть и другие способы! ...

Как из TWebBrowser получить ХТМЛ-код страницы.
Как получить HTML-код с текущей страницы в компоненте TWrbBrowser. Заранее спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru