タイトル | : Re^4: IEの制御の方法 |
記事No | : 10237 |
投稿日 | : 2010/10/02(Sat) 11:28 |
投稿者 | : 花ちゃん |
> 現在、いろいろ試行錯誤しているのですが
検索して調べれば、サンプルコードはいくらでも見つかりますよ。 魔界の仮面弁士 さんの回答にあったように下記のようなツールを作っておき 前もって、何番目の要素かを調べて置きそれに対して操作をすればよいかと。 http://www.hanatyan.sakura.ne.jp/samplepic/vb8_237.htm
一度下記を試して見て解らない所は、調べて試すようにして見て下さい。 WEBページは同じ物が無いと言っても過言ではなく、そのページ内容に合ったような コードが要求されるので、ご自分で基礎的な事は理解しておかないと応用が利かないので 結局うまく取得できませんと言う事になります。
>loginやpasswdなどの"name"TAGを指定しないで と言う要望なので下記のようにしてみました。
Public Class Form1
Private WithEvents IE As SHDocVw.InternetExplorer Private myUrl As String
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click If Not (IE Is Nothing) Then IE.Quit() IE = Nothing End If myUrl = "http://www.google.co.jp/custom" IE = New SHDocVw.InternetExplorer IE.Visible = True IE.Navigate2(myUrl.ToString) End Sub
Private Sub IE_DocumentComplete(ByVal pDisp As Object, ByRef URL As Object) Handles IE.DocumentComplete If Not TypeName(pDisp) = "IWebBrowser2" Or URL.ToString <> myUrl Then Return Invoke(New SHDocVw.DWebBrowserEvents2_DocumentCompleteEventHandler(AddressOf foo), pDisp, URL) End Sub
Private Sub foo(ByVal pDisp As Object, ByRef URL As Object) Dim Elements As mshtml.IHTMLElementCollection = DirectCast(DirectCast(IE.Document, _ mshtml.HTMLDocument).all.tags("INPUT"), mshtml.IHTMLElementCollection) Dim Element As mshtml.IHTMLElement = DirectCast(Elements.item(1), mshtml.IHTMLElement) Element.setAttribute("value", "VBレスキュー(花ちゃん)") Element = DirectCast(Elements.item(2), mshtml.IHTMLElement) Element.click() End Sub
End Class
2010.10.02 22:30 修正
敢えて、解説も解放処理等も省略しておりますが、動作確認は問題なくできるはずです。
|