tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^4: IEの制御の方法
投稿日: 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 修正

敢えて、解説も解放処理等も省略しておりますが、動作確認は問題なくできるはずです。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。