Board logo

标题: 请求改良一段VBS [打印本页]

作者: utem999     时间: 2007-4-16 10:30    标题: 请求改良一段VBS

Set Wshell=WScript.CreateObject("WScript.Shell")
AppName="163邮箱"
Set ie=WScript.CreateObject("InternetExplorer.Application")
ie.visible=True
For i=1 To 6 Step 1
ie.navigate "http://mail.163.com"
Do
Wscript.Sleep 200
Loop Until ie.ReadyState=4
ie.Document.login163.username.value="163ID"
ie.Document.login163.password.value="163密码"
WShell.SendKeys "~" ' 回车
Wscript.Sleep 5000 ' 根据自己的网速确定等待时间
Wshell.SendKeys "^W" ' 关闭IE窗口
Next

登陆163邮箱的VBS,请问能不能把这段代码改进一下呢?
如:我有N多的163邮箱保存在163.txt的文档中,地址与密码格式如:
1234@163.com----1234
1235@163.com----1234
1256@163.com----1234

请问能不能用VBS自动读取163.txt,自动从第一登陆至最后一个,并重复3次?
作者: lxmxn     时间: 2007-4-16 10:34
你刷积分呢?
作者: utem999     时间: 2007-4-16 10:37


  Quote:
Originally posted by lxmxn at 2007-4-16 10:34:
你刷积分呢?

可以这么说吧
去年不小心申了N多163的邮箱
再说了
不登陆的话有被停的可能呀
各位帮忙了
作者: lxmxn     时间: 2007-4-16 10:38
用vbs和bat结合应该可以搞定,但是vbs我也不会。
作者: kich     时间: 2007-4-16 22:37
我也是新手,略写了一点,不知道有什么出错,我运行时是可以进去的!!
仅供参考:
'脚本和密码文本"163.txt"在同一个目录下运行
On Error Resume Next
Set fso=CreateObject("Scripting.FileSystemObject")
Set fr=fso.OpenTextFile("163.txt")
Do Until fr.AtEndOfStream
   Login fr.ReadLine
Loop
fr.Close
Set fr=Nothing
Set fso=Nothing
Function Login(text)
  Set Wshell=WScript.CreateObject("WScript.Shell")
  AppName="163邮箱"
  Set ie=WScript.CreateObject("InternetExplorer.Application")
  ie.visible=True
  text=Trim(text)  
  ID=Left(text,InStr(text,"@")-1)
  PW=Right(text,len(text)-instrrev(text,"-"))
  For i=1 To 6 Step 1
    ie.navigate "http://mail.163.com"
    Do
      Wscript.Sleep 200
    Loop Until ie.ReadyState=4
    ie.Document.login163.username.value=ID
    ie.Document.login163.password.value=PW
    WShell.SendKeys "~" ' 回车
    Wscript.Sleep 5000 ' 根据自己的网速确定等待时间
    Wshell.SendKeys "^W" ' 关闭IE窗口
  Next
  Set ie=Nothing
  Set Wshell=Nothing
End Function

作者: kich     时间: 2007-4-16 22:47
安全起见,可以在代码里加判断是否有163.txt文件的存在,还要判断文本文件是否为空,还有格式是否正确,但楼主是自己建的文件,应该不用判断了吧!!
作者: utem999     时间: 2007-4-17 03:06


  Quote:
Originally posted by kich at 2007-4-16 22:37:
我也是新手,略写了一点,不知道有什么出错,我运行时是可以进去的!!
仅供参考:
[code]
'脚本和密码文本"163.txt"在同一个目录下运行
On Error Resu ...

谢谢
狂弹网页
作者: kich     时间: 2007-4-17 08:26
Do
      Wscript.Sleep 200
    Loop Until ie.ReadyState=4

这个200好像设置小了,设置成2500,好像就好多了,不会出现很多网页了!!!
作者: baomaboy     时间: 2007-4-19 13:58


  Quote:
Originally posted by kich at 2007-4-16 22:47:
安全起见,可以在代码里加判断是否有163.txt文件的存在,还要判断文本文件是否为空,还有格式是否正确,但楼主是自己建的文件,应该不用判断了吧!!

写的真不错,狂弹网页是个小毛病。
分析下代码看 用改变 Sleep time 的方法 有些不妥,因为此处的Sleep易受硬件、系统、网络多方影响 且本就是秒甚至毫秒间的变化,添加另一个判断条件ie.Document.title=应该是个可行的方法。

163邮箱自动登陆→VBS版
作者: xswdong     时间: 2007-4-20 01:46
能做成126的吗 我用126代换163 并把163.txt改成126 不行
作者: vkill     时间: 2007-4-20 02:02
我喜欢用telnet,因为vbs容易受登陆界面的限制

[ Last edited by vkill on 2007-4-20 at 02:06 AM ]
作者: baomaboy     时间: 2007-4-20 03:15


  Quote:
Originally posted by xswdong at 2007-4-20 01:46:
能做成126的吗 我用126代换163 并把163.txt改成126 不行

可以改成126的 但是可能要更改下面句子
具体改成什么要查看网页源文件。
ie.Document.login163.username.value=ID
ie.Document.login163.password.value=PW
作者: slore     时间: 2007-5-10 16:30
Set fr=fso.OpenTextFile("163.txt",1,1)没有就自动创建……