我如何檢索文本從德爾福的網站文本框例如假設我在谷歌搜索框中鍵入 ''虎''如何從該搜索框中檢索文本將wm_gettext或getwindowtext工作? 我正在使用delphi 7如何檢索網站文本框中的文本
回答
試試這段代碼。
只適用於Internet Explorer。在Windows Vista中,IE8ÿ德爾福測試2007
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;
編輯:
奧馬爾遺憾的是沒有簡單的解決您的問題。這是因爲每個瀏覽器都使用不同的界面來與信息進行交互。
這裏有一些建議
- Firefox使用XPCOM,你可以研究一下。
- 嘗試使用DDE(動態數據交換)。
- 您可以使用WatiN,它是一個與firefox和iexplorer一起工作的.net庫。你可以看到this article以瞭解如何與delphi win32中的.net程序集進行交互。
再見。
感謝rruz :)這段代碼似乎很難!是他們更簡單的方法嗎?我不是說我不能夠使用這段代碼,但生病了,必須學習一些新的東西,如ole和東西,其次,我想趕上從Firefox的編輯框。 – 2009-09-19 07:21:32
+1好回答RRUZ。我同意沒有簡單的方法來實現這一點,特別是如果要支持多個瀏覽器。很遺憾,這種事情沒有共同的鉤子。 – Argalatyr 2009-09-20 17:03:48
謝謝,我已經使用dde從瀏覽器中成功地獲取網址,但我發現如何使用dde從網頁的文本框中檢索文本的任何幫助。你可以指出使用dde來完成這個任何例子 – 2009-09-21 08:32:03
最簡單的方法是使用頁面原始HTML代碼的正則表達式。
但是您可以在公共瀏覽器上運行實例嗎?請幫忙! – 2009-09-20 04:12:51
- 1. 如何從編程創建的文本框中檢索文本
- 2. 如何檢索文本框的值
- 3. 如何在回發後從文本框中檢索文本?
- 4. 如何從使用硒的網站檢索部分文本
- 5. 從C#中的文本框中檢索文本的循環文本框ID
- 6. 將文本從VB.NET中的網站放入文本框中
- 7. 我將如何使用JavaScript從其他網站檢索文本?
- 8. 從搜索框中檢索文本
- 9. 我如何搜索文本框中的視覺基本文本
- 10. 從StackPanel中動態創建的文本框中檢索文本
- 11. 從單行windows phone/c中的文本框中檢索文本#
- 12. 從Android小部件中的文本框中檢索文本?
- 13. 如何從C#中的列表框索引檢索文本值
- 14. 如何從Android小部件中的文本框中檢索文本?
- 15. 如何從文本文件中的文本框中搜索某一行文本?
- 16. 如何檢索onclick文本?
- 17. JSONP如何檢索文本
- 18. 如何將網站中的文本轉換爲文本視圖
- 19. 如何從CustomAlertDialog中的文本編輯器中檢索文本
- 20. 列出所有的網站,文本框
- 21. 網站上的L形文本框
- 22. 如何在VB.NET中檢查網站上的文本?
- 23. 從動態文本框中檢索值
- 24. 從Asp.Net文本框中檢索值TextBox
- 25. 從文本框中檢索輸入值
- 26. 從textField hWnd從網站窗體中檢索文本vC++
- 27. 如何從mvc網站的資源中檢索所有靜態文本?
- 28. 如何在網站上的文本框中撰寫並提交
- 29. 如何將數據導入到網站的文本框中
- 30. 如何在黑莓的編輯文本框中搜索文本?
您是否試圖從Internet Explorer的正在運行的實例中獲取文本?或者一個tWebBrowser組件? – skamradt 2009-09-18 15:51:25
我想從一個正在運行的Internet Explorer/firefox /其他某個瀏覽器的實例中獲取文本 – 2009-09-19 05:19:23