none
VB2008 動作 RRS feed

  • 問題

  •     Dim IE As Object
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.IE = CreateObject("InternetExplorer.Application")
            Me.IE.Visible = True
            Me.IE.Navigate("")
            Do While Me.IE.Busy
                Application.DoEvents()
            Loop
            TimerClose.Start()
        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            With IE
                Dim username = .Document.GetElementById("username")
                Dim password = .Document.GetElementById("passworde")
                Dim loginsubmit = .Document.GetElementById("loginsubmit")
                Try
                    .Document.All("username").Value = "UPss"
                    .Document.All("password").Value = "123456"
                    .Document.All("loginsubmit").Click()

                    Do While Me.IE.Busy
                        Application.DoEvents()
                    Loop

                Catch ex As Exception

                    '我想在這寫登出,確保沒有帳戶已經登入

                End Try
            End With
        End Sub


    登出我部分,我不太會寫
    • 已編輯 手指 2012年1月14日 下午 12:54
    2012年1月10日 下午 01:47

解答

所有回覆

  • 如果Exception的話,

    1.可導到首頁後,將該網頁的Cache清掉(如何清除快取,當您的應用程式裝載在 Visual Basic.NET 一 WebBrowser 控制項)

    2.將IE關掉

    希望對您有幫助,謝謝!

     


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2012年1月10日 下午 02:58
  • 之前.shadow and happy code都教過我

    如果用webbrowser1

    就可以 這樣寫

    Dim aa As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("a")
       
    For Each element As HtmlElement In aa
         
    If element.GetAttribute("href").Contains("action=logout") Then
            element.InvokeMember("click")

         
    End If
        Next




    我要 怎樣改?
    • 已編輯 手指 2012年1月10日 下午 03:20
    2012年1月10日 下午 03:16
  • Hi,

    你沒搞懂shadow and happy code那段程式的意義吧

    並不是用webbrowser就可以這樣寫

    你要登出網頁要馬是找到使用者在那網頁上怎樣才能登出

    要馬是想辦法把登入資訊清除

    那段程式屬於第一種做法

    必須用程式撰寫相同的功能

    但是每個網頁的架構又不會一致

    這種做法不可能每個網頁都一樣


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2012年1月10日 下午 04:49
  • 嗯,如果確定在Exception時,已登入的話,您也可以用   .Document.All("logout").Click() ,如果您網頁有logout這個名稱的物件,並且代表登出!

    不過,如果要登出的話,不就導到登入頁就好了!

    如果再怕有留下cookie的話,就把cookie給清掉,不然就在您的登入頁裡把已登入的cookie給清掉。 


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2012年1月10日 下午 10:58
  • 是不是這樣?就把cookie給清掉

    .Navigate("javascript:void((function(){var a,b,c,e,f;f=0;a=document.cookie.split('; ');for(e=0;e<a.length&&a[e];e++){f++;for(b='.'+location.host;b;b=b.replace(/^(?:%5C.|[^%5C.]+)/,'')){for(c=location.pathname;c;c=c.replace(/.$/,'')){document.cookie=(a[e]+'; domain='+b+'; path='+c+'; expires='+new Date((new Date()).getTime()-1e11).toGMTString());}}}})())")

    另外,我想問一問,下面的,            

    Me.IE.Visible = False

    是把網頁隱藏了,還是 關閉了網頁?   

    2012年1月11日 上午 06:23
  • 只是把ie hide起來而已哦!

    您可以從工作管理員中看到IE的Process哦!


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2012年1月11日 上午 07:54
  • 那要 關閉網頁要怎樣?
    2012年1月11日 下午 12:17
  • IE.Quit()
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    • 已標示為解答 手指 2012年1月14日 下午 12:54
    2012年1月11日 下午 12:34