使用WebBrowser1.Navigate 登录网站,如果判断用户名,密码是错误的??

tgc99 2008-03-04 10:05:37
比如:用IE打开这个页面,用这个用户名,密码,,是不能登录的.提示错误..

现在想使用控件WebBrowser1登录:
WebBrowser1.Navigate "http://blog.abcd.cn/batch.login.php?action=login", 0, , PostData, strHeaders

登录的用户名和密码在参数PostData里面..

运行Navigate后,,如果用户名,或者密码不正确,如何才能返回一个值,知道登录是失败的呢??
...全文
300 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuisjshuisj 2008-03-05
  • 打赏
  • 举报
回复
顶,不错,学习学习!!
Alices 2008-03-05
  • 打赏
  • 举报
回复

'//我个人觉得WebBrowser不是很好用.如果真的要判断很不是很难。

Private Sub WebBrowser1_Navigated(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated

Dim sts = New IO.StreamReader(WebBrowser1.DocumentStream, System.Text.Encoding.GetEncoding("gb2312"))'OR UTF8
Dim ast = sts.ReadToEnd
If InStr(ast, "密码有误") > 0 Or InStr(ast, "输入的旧密码错误") Then
'//
End If

If InStr(ast, "验证码有误") > 0 Then
'//
End If

End Sub

'//如果是想做自己登陆还是用Net.HttpWebRequest和 Net.HttpWebResponse比较好,不用下载图片等。
'//PS:上面是我做QQ登陆页面时的代码,不过当时没搞清楚加密算法才用WebBrowser的。
用户 昵称 2008-03-05
  • 打赏
  • 举报
回复
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim s As String
Dim ss As String
Dim i As Long
Dim j As Long
Winsock1.GetData s, vbString
Open App.Path & "\guanshui.txt" For Output As #1
Print #1, s
Close #1
Open App.Path & "\guanshui.txt" For Input As #1
Do
Line Input #1, ss
If InStr(1, ss, "ABCDEF") Then
i = InStr(1, ss, "=")
j = InStr(1, ss, ";")
ABCDEF = Mid(ss, i + 1, j - i - 1)
'MsgBox "ABCDEF=" & ABCDEF
End If
If InStr(1, ss, "QWERTOP") Then
i = InStr(1, ss, "=")
j = InStr(1, ss, ";")
QWERTOP = Mid(ss, i + 1, j - i - 1)
'MsgBox "QWERTOP=" & QWERTOP
End If
If InStr(1, ss, "daynum") Then
i = InStr(1, ss, "=")
j = InStr(1, ss, ";")
daynum = Mid(ss, i + 1, j - i - 1)
'MsgBox "daynum=" & daynum
End If
If InStr(1, ss, "ASPSESSION") Then
i = InStr(1, ss, " ")
j = InStr(1, ss, ";")
ASPSESSION = Mid(ss, i + 1, j - i - 1)
'MsgBox ASPSESSION
End If
Loop While Not EOF(1)
Close #1
cookie = "Cookie: "
cookie = cookie & "daynum=" & daynum & "; "
cookie = cookie & "ABCDEF=" & ABCDEF & "; "
cookie = cookie & "QWERTOP=" & QWERTOP & "; "
cookie = cookie & "userid=" & userid & "; "
cookie = cookie & ASPSESSION
'MsgBox cookie
Text3.Text = s
If InStr(1, s, "添加完成") Then
Form2.BackColor = vbGreen
End If
If InStr(1, s, "你回复太快了,慢点!!") Then
Dim t As Double
t = Timer
Do
DoEvents
Loop While Timer - t < 10
Command1_Click
End If
End Sub
用户 昵称 2008-03-05
  • 打赏
  • 举报
回复
可以这样判断,以前俺写CSDN的灌水机的时候,每次post要发出去的数据之后,会get回来一个页面的内容,如果里面出现成功就回复成功,不过平时get回来的都是“您回复的太快了”。
tgc99 2008-03-05
  • 打赏
  • 举报
回复
感谢楼上几位的关注..
蒋晟 2008-03-05
  • 打赏
  • 举报
回复
你判断不了,只有服务器才可以判断,除非服务器将登陆结果以可以预料的格式返回客户端
jinjazz 2008-03-05
  • 打赏
  • 举报
回复
判断登陆成功后者失败后的跳转地址或者页面内容

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧