Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к объектам интернет страницы, Нужна помощь 
:(
    Опции темы
Gorcer
Дата 30.6.2004, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

Репутация: нет
Всего: 4



Здраствуйте, как мне сделать следущее:
Написать в поле (Edit) интернет страницы текст используя Delphi, другими словами получить доступ к управлению элементами интернет страницы, причем страница написана не мною. левая к примеру чат!ъ

Заранее благодарен!


--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
p0s0l
Дата 2.7.2004, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Если подробнее - эта страница открыта в каком-то левом браузере (опера, IE, etc) или в твоей проге (в TWebBrowser) ? Или тебе вообще без разницы - лишь бы заполнить поле ввода и отправить на сервер (не важно, где открыта эта страница) ?


--------------------
С уважением, г-н Посол.
PM   Вверх
Gorcer
Дата 3.7.2004, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

Репутация: нет
Всего: 4



Я испоьзую TWEBBROWSER,
Реализуя пример(кот. я нашел в "базе знаний" скачаной с этого сайта), я столкнулся с проблемой: Найдя нужное поле (<input type=text>) я выполняю команду


ovElements.item(i).Value := 'Tra-Lya-Lya';


но ничего непроисходит , поле незаполняется, может гдето нужно защиту какуюнибудь отключить? hmmm.gif

Заранее благодарен.






--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
p0s0l
Дата 3.7.2004, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Отключать ничего не надо... Вот рабочий пример:
Код

uses MSHTML;

{ wb1 : TWebBrowser; }

procedure TForm1.Button1Click(Sender: TObject);
var
 doc : IHTMLDocument2;
 i, j : integer;
 el : IHTMLElement;
 col : IHTMLElementCollection;
 f : IHTMLFormElement;
begin
 doc := wb1.Document as IHTMLDocument2;
 col := doc.forms;
 for i := 0 to col.length-1 do
 begin
   f := col.item(i, NULL) as IHTMLFormElement;
   for j := 0 to f.length-1 do
   begin
     el := f.item(j, NULL) as IHTMLElement;
     if (el.tagName = 'INPUT') and
        (el.getAttribute('type', 0) = 'text') then
       el.setAttribute('value', 'Заполняем input text', 0);
     if (el.tagName = 'TEXTAREA') then
       el.setAttribute('value', 'Заполняем textarea', 0);
   end;
 end;
end;

Для примера загрузи в WebBrowser вот эту страницу (с винграда), и этот код заполнит поле ввода для поиска и поле ввода для поста...




--------------------
С уважением, г-н Посол.
PM   Вверх
Guest
Дата 6.7.2004, 07:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Большое спасибо, все работает, вот только неполучается с фреймами работать ч/з этот скрипт.
Пробовал сам написать код по перебору фреймов, но ничего невышло. Помогите чем можите rolleyes.gif

Заранее благодарен!
  Вверх
<Spawn>
Дата 6.7.2004, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



все фреймы должны лежать в свойстве frames(если судить по тому, что виденые методы данных интерфейсов идентичны обьектной модели Java Script). Либо должен быть интерфейс, для доступа ко всем фреймам


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Gorcer
Дата 7.7.2004, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 275
Регистрация: 30.6.2004
Где: Владивосток

Репутация: нет
Всего: 4



Все нашел процедуру, которая возвращает N-й фрейм biggrin.gif
Для всех интересующихся:
Код

function TForm1.GetFrame(FrameNo: Integer): IWebbrowser2;
var
 OleContainer: IOleContainer;
 enum: IEnumUnknown;
 unk: IUnknown;
 Fetched: PLongint;
begin
 while wb1.ReadyState <> READYSTATE_COMPLETE do
   Application.ProcessMessages;
 if Assigned(Wb1.document) then
 begin
   Fetched := nil;
   OleContainer := Wb1.Document as IOleContainer;
   OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum);
   Enum.Skip(FrameNo);
   Enum.Next(1, Unk, Fetched);
   Result := Unk as IWebbrowser2;
 end
 else
   Result := nil;
end;

Потом получаем из фрейма документ и далее как описано выше thumbs-up.gif
Код

iw := GetFrame(i);
doc:=iw.Document as IHTMLDocument2;
col := doc.forms;



--------------------
Больнее всего получить удар от человека которому доверяешь.

<удалено администрацией>
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.