如何从chrome网站检索文本

时间:2014-08-18 01:46:48

标签: delphi google-chrome

如何从delphi中的网站文本框中检索文本,例如假设我在谷歌的Chrome搜索框中键入“龙”,如何从该搜索框中检索文本? wm_gettext或getwindowtext会起作用吗?我想知道如何在Google Chrome上使用它, 我找到了IE:

Uses
SHDocVw,
mshtml;

procedure GetTextFromEditIExplorer(ListStr: TStringList);
var
  ShellWindow            : IShellWindows;
  Web_Browser            : IWebbrowser2;
  reg_Shell_window       : IDispatch;
  Dummy                  : IHTMLDocument2;
  ovElements             : OleVariant;
  Document               : Variant;
  WindowsCount           : Integer;
  ElementsCount          : Integer;
  FormsCount             : Integer;
begin
  ShellWindow := CoShellWindows.Create;  //Provides access to the collection of open Shell windows
  for WindowsCount := 0 to ShellWindow.Count do     //iterate through number of windows in the Shell windows collection
  begin
    reg_Shell_window := ShellWindow.Item(WindowsCount);       //Returns the registered Shell window for a specified index.
    if reg_Shell_window = nil then Continue;    //go to next reg window
    reg_Shell_window.QueryInterface(iWebBrowser2, Web_Browser);   // determines if an interface can be used with an object
    if Web_Browser <> nil then
    begin
      Web_Browser.Document.QueryInterface(IHTMLDocument2, Dummy);
      if Dummy <> nil then
      begin
        Web_Browser     := ShellWindow.Item(WindowsCount) as IWebbrowser2;
        Document        := Web_Browser;
          for FormsCount := 0 to Document.forms.Length - 1 do
          begin
            ovElements := Document.forms.Item(FormsCount).elements;
            for ElementsCount := 0 to ovElements.Length - 1 do
            begin
              try
                if (CompareText(ovElements.item(ElementsCount).tagName, 'INPUT') = 0)  and  (CompareText(ovElements.item(ElementsCount).type, 'text') = 0) then
                ListStr.Add('Control Name ['+ovElements.item(ElementsCount).Name+']'+' Type  -> '+ovElements.item(ElementsCount).Type+'  ->  Value  ['+ovElements.item(ElementsCount).Value+']');
              except
                ListStr.Add('Error Reading element n° '+IntToStr(ElementsCount));
              end;
            end;
          end;
      end;
    end;
  end;
end;

procedure TForm1.btn1Click(Sender: TObject);
var
List : TStringList;
begin
   List:=TStringList.Create;
   GetTextFromEditIExplorer(List);
   ShowMessage(List.Text);
end;

TXZ

0 个答案:

没有答案