Как ввести имя пользователя и пароль в окно входа с помощью vb6.0? - PullRequest
0 голосов
/ 23 февраля 2012

Я работаю над проектом, в который я хочу вставить информацию для входа программно.Ниже мой код и изображение окна, в которое я хочу добавить информацию для входа.

'Reference: Microsoft HTML Library
'Control: Webbrowser Control

Dim HTML As HTMLDocument
Dim HTMLI As HTMLInputElement
Dim uName, uPass As String


Private Sub form_load()

WebBrowser1.resizable = True
WebBrowser1.navigate "http://<any website name>"

Call autologin
End Sub

Sub autologin()

On Error Resume Next

uName = "user"
uPass = "password"


Set HTML = WebBrowser1.document

    For Each HTMLI In HTML.getElementsByTagName("input")


        If HTMLI.Name = "Login" Then

        HTMLI.Value = uName

        End If


        If HTMLI.Type = "password" Then
        HTMLI.Value = uPass
        End If
        If HTMLI.Type = "ok" Then
        HTMLI.Click
        End If

    Next
End Sub 

enter image description here

В коде выше я застрял в этом окне входа

1 Ответ

2 голосов
/ 23 февраля 2012

Есть несколько вещей не так с этим.Для начала, вы не даете веб-странице возможность загрузки.Выполните функцию AutoLogin () в событии DocumentComplete веб-браузера.Кроме того, если кнопка «ОК» находится не в конце набора тэгов INPUT, вы можете отправить форму без всех данных.

Вот мой взгляд на код, который вы нам показали:

Option Explicit

Private Const m_sURI           As String = "http://<any website name>"

Private Sub Form_Load()

    WebBrowser1.Resizable = True
    WebBrowser1.Navigate m_sURI

End Sub

Sub autologin()

    Dim HTML As HTMLDocument
    Dim HTMLI As HTMLInputElement
    Dim inputButton As HTMLInputElement
    Dim uName As String
    Dim uPass As String

    On Error GoTo ErrorHandler:

    uName = "user"
    uPass = "password"

    Set HTML = WebBrowser1.Document

    For Each HTMLI In HTML.getElementsByTagName("input")
        If HTMLI.Name = "Login" Then
            HTMLI.Value = uName
        End If
        Select Case HTMLI.Type
        Case "password"
            HTMLI.Value = uPass
        Case "ok"
            ' Save the ok reference so we can use it later.
            Set inputButton = HTMLI
        End Select
    Next HTMLI

    If inputButton Is Nothing Then
        MsgBox "Ok button not found."
    Else
        inputButton.Click
    End If
Exit Sub

ErrorHandler:
    ' Handle error ... 
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

    If URL = m_sURI Then
        autologin
    End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...