Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Можно ли узнать название кнопки на странице, Открытой через TWebBrowser 
:(
    Опции темы
Marriage
Дата 26.5.2005, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Смысл такой. Открывается HTML-ник в этом компаненте. НАа этой страничке есть кнопка .
У нее может быть 2 caption'a. Можно ли отловить с помощью дельфи какой именно сейчас caption уэтой кнопки????


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
_hunter
Дата 26.5.2005, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 2
Всего: 98



в каком "в этом"?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
December
Дата 26.5.2005, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


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

Репутация: 12
Всего: 57



_hunter
см. название темы.

Marriage
Можно. Посмотри в DRKB топик "Как автоматически заполнить поля на страничке" в разделе "Работа с ИЕ, междумордиями TWebBrowser". Там есть пример как достучаться до нужного контрола в нужном фрейме. Если не найдёшь, скину пример.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
_hunter
Дата 26.5.2005, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 2
Всего: 98



странно... у меня на странице коммент не отображается


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Marriage
Дата 26.5.2005, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



December
Скинь плиз...
Траффика мало ...
Так бы поискал ....


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
December
Дата 26.5.2005, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


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

Репутация: 12
Всего: 57



Вот. Будет чё-то непонятно - пиши.
Код

uses  
  MSHTML_TLB;  

// first navigate to tipspage  

procedure TForm1.Button1Click(Sender: TObject);  
begin  
  Webbrowser1.Navigate('http://www.swissdelphicenter.ch/en/tipsuchen.php');  
end;  

// Try to access IE instance and fill out the search field with  
// a text and click the search button  

procedure TForm1.Button3Click(Sender: TObject);  
var  
  hIE: HWND;  
  ShellWindow: IShellWindows;  
  WB: IWebbrowser2;  
  spDisp: IDispatch;  
  IDoc1: IHTMLDocument2;  
  Document: Variant;  
  k, m: Integer;  
  ovElements: OleVariant;  
  i: Integer;  
begin  
  ShellWindow := CoShellWindows.Create;  
  // get the running instance of Internet Explorer  
  for k := 0 to ShellWindow.Count do  
  begin  
    spDisp := ShellWindow.Item(k);  
    if spDisp = nil then Continue;  
    // QueryInterface determines if an interface can be used with an object  
    spDisp.QueryInterface(iWebBrowser2, WB);  

    if WB <> nil then  
    begin  
      WB.Document.QueryInterface(IHTMLDocument2, iDoc1);  
      if iDoc1 <> nil then  
      begin  
        WB := ShellWindow.Item(k) as IWebbrowser2;  
        begin  
          Document := WB.Document;  

          // count forms on document and iterate through its forms  
          for m := 0 to Document.forms.Length - 1 do  
          begin  
            ovElements := Document.forms.Item(m).elements;  
            // iterate through elements  
            for i := 0 to ovElements.Length - 1 do  
            begin  
              // when input fieldname is found, try to fill out  
              try  
                if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and  
                  (CompareText(ovElements.item(i).type, 'text') = 0) then  
                begin  
                  ovElements.item(i).Value := 'FindWindow';  
                end;  
              except  
              end;  
              // when Submit button is found, try to click  
              try  
                if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and  
                  (CompareText(ovElements.item(i).type, 'SUBMIT') = 0) and  
                  (ovElements.item(i).Value = 'Search') then  // Suchen fьr German  
                begin  
                  ovElements.item(i).Click;  
                end;  
              except  
              end;  
            end;  
          end;  
        end;  
      end;  
    end;  
  end;  
end; 



--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Marriage
Дата 26.5.2005, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как я понял в 5-й это не прокатит ????
А то скачал MSHTML_TLB, а он VAriant хочет

PS
Опшибся ..
Все запустилось , спасибо!!!



Это сообщение отредактировал(а) Marriage - 26.5.2005, 21:44


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
Marriage
Дата 26.5.2005, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Все бы конечно хорошо ...
Но только Почему т оне видит эта процедура сам TWEBBROWSER ...
И пишет, что TWEBBROWSER и IWebbrowser2 не совместимы ...
Как быть ???


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
December
Дата 27.5.2005, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


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

Репутация: 12
Всего: 57



Забей на IWebBrowser2.
Код

var  
  WB: TWebBrowser; 
...

И в дальнейшем просто пихай в эту переменную своё окно.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Guest
Дата 27.5.2005, 08:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











December
Спасиб , щас попробую ...
  Вверх
Marriage
Дата 27.5.2005, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ПОПОРБОВАЛ....
Не хочет все равно ...
Код

uses  
  MSHTML_TLB;  

// first navigate to tipspage  

procedure TForm1.Button1Click(Sender: TObject);  
begin  
  Webbrowser1.Navigate('http://www.swissdelphicenter.ch/en/tipsuchen.php');  
end;  

// Try to access IE instance and fill out the search field with  
// a text and click the search button  

procedure TForm1.Button3Click(Sender: TObject);  
var  
  hIE: HWND;  
  ShellWindow: IShellWindows;  
  WB: IWebbrowser2;  <-вот здесь поставил TwebBrowser
  spDisp: IDispatch;  
  IDoc1: IHTMLDocument2;  
  Document: Variant;  
  k, m: Integer;  
  ovElements: OleVariant;  
  i: Integer;  
begin  
  ShellWindow := CoShellWindows.Create;  
  // get the running instance of Internet Explorer  
  for k := 0 to ShellWindow.Count do  
  begin  
    spDisp := ShellWindow.Item(k);  
    if spDisp = nil then Continue;  
    // QueryInterface determines if an interface can be used with an object  
    spDisp.QueryInterface(iWebBrowser2, WB);  <-вот  тут пишет : не хочу, не сопоставимые типы
                                                                            

    if WB <> nil then  
    begin  
      WB.Document.QueryInterface(IHTMLDocument2, iDoc1);  
      if iDoc1 <> nil then  
      begin  
        WB := ShellWindow.Item(k) as IWebbrowser2;  <- воттут пишет несопоставимые типы, если   TwebBrowser написать
        begin  
          Document := WB.Document;  

          // count forms on document and iterate through its forms  
          for m := 0 to Document.forms.Length - 1 do  
          begin  
            ovElements := Document.forms.Item(m).elements;  
            // iterate through elements  
            for i := 0 to ovElements.Length - 1 do  
            begin  
              // when input fieldname is found, try to fill out  
              try  
                if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and  
                  (CompareText(ovElements.item(i).type, 'text') = 0) then  
                begin  
                  ovElements.item(i).Value := 'FindWindow';  
                end;  
              except  
              end;  
              // when Submit button is found, try to click  
              try  
                if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and  
                  (CompareText(ovElements.item(i).type, 'SUBMIT') = 0) and  
                  (ovElements.item(i).Value = 'Search') then  // Suchen fьr German  
                begin  
                  ovElements.item(i).Click;  
                end;  
              except  
              end;  
            end;  
          end;  
        end;  
      end;  
    end;  
  end;  
end; 



--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
Marriage
Дата 27.5.2005, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ВО !!!
НАШЕЛ КАК !!!
Код

procedure TForm1.Button6Click(Sender: TObject);
var
  ovElements: OleVariant;
  i: Integer;
begin
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
  for i := 0 to (ovElements.Length - 1) do
    if (ovElements.item(i).tagName = 'INPUT') then
       Begin
        ovElements.item(i).Click;
        ShowMEssage(ovElements.item(i).Value);
       End;

end;


НУжно чтобы все эти кнопки и пр. были на форме ...


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

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

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


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

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

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


 




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


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

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