中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求一个VBS随机打开网址的示例
作者:
标题: 求一个VBS随机打开网址的示例 上一主题 | 下一主题
hackhd
中级用户





积分 231
发帖 102
注册 2008-1-25
状态 离线
『楼 主』:  求一个VBS随机打开网址的示例

脚本里给几个网址
比如 WWW.QQ.COM
        WWW.163.COM
         WWW.SOHU.COM
         WWW.SINA.COM
有这几个网址

运行VBS时会随机打开其中一个网址

2009-9-6 22:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『第 2 楼』:  

增加了一个函数来增强兼容性,首尾可以包含空白(空格,TAB等),网址可以不包含 http:// 、www 前缀。

信息存在数组中
'存放网址的数组
URLs=Array( _
"WWW.QQ.COM", _
"WWW.163.COM", _
"WWW.SOHU.COM", _
"WWW.SINA.COM")

Set ching=CreateObject("Wscript.Shell")
Dim URL
Randomize
URL=formatURL(URLs(Int(UBound(URLs) * Rnd) + 1))
ching.Run URL


'获取此行中的有效网址(剔除首尾空白部分)
Function formatURL(textString)
Set regEx = New RegExp
regEx.Pattern = "^\s*(.+\:\/\/)?(.*)\s*$"
regEx.IgnoreCase = True
Set matches = regEx.Execute(textString)
Set match1=matches(0)
formatURL=match1.SubMatches(0)&match1.SubMatches(1)
If formatURL="" Then formatURL="about:blank"
End Function
存在文件中
'存放网址的文件
Const fileName="a.txt"

Set fso=CreateObject("Scripting.FileSystemObject")
Set ching=CreateObject("Wscript.Shell")
Dim URL
Randomize
URL=formatURL(getStringAtLine(fileName, Int((getLines(fileName) * Rnd) + 1)))
ching.Run URL


'获取行数
Function getLines(fileName)
Dim lines
lines=0
set f=fso.OpenTextFile(fileName)
While not f.AtEndOfStream
f.SkipLine()
lines=lines+1
Wend
f.Close()
set f=Nothing
getLines=lines
End Function


'得到指定行的字符串
Function getStringAtLine(fileName, lineNumber)
Dim str
set f=fso.OpenTextFile(fileName)
ON ERROR RESUME NEXT
For i=2 to lineNumber
f.SkipLine()
Next
str=f.Readline()
f.Close()
set f=Nothing
getStringAtLine=str
End Function


'获取此行中的有效网址(剔除首尾空白部分)
Function formatURL(textString)
Set regEx = New RegExp
regEx.Pattern = "^\s*(.+\:\/\/)?(.*)\s*$"
regEx.IgnoreCase = True
Set matches = regEx.Execute(textString)
Set match1=matches(0)
formatURL=match1.SubMatches(0)&match1.SubMatches(1)
If formatURL="" Then formatURL="about:blank"
End Function
[ Last edited by qinchun36 on 2009-9-6 at 23:45 ]

2009-9-6 23:27
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
keen
初级用户





积分 58
发帖 29
注册 2008-8-15
状态 离线
『第 3 楼』:  re 2楼

URL=formatURL(URLs(Int(UBound(URLs) * Rnd) + 1))

你采用加1,是无法取到第一个地址吧,也就是说你的取数组中的值,最小都是URLs(1),无法取到URLs(0)。

2009-9-7 01:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hackhd
中级用户





积分 231
发帖 102
注册 2008-1-25
状态 离线
『第 4 楼』:  

我想让程序在后台的方式打开网页呢,,打开网页时看不到

[ Last edited by hackhd on 2009-9-7 at 02:35 ]

2009-9-7 02:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『第 5 楼』:  

re 3楼:  的确,失误,从文件那段直接粘过来的。。。

re 4楼: 想要隐藏的话需要指定打开网页的程序,然后加上参数 0,比如
ching.Run "iexplore "&chr(34)&URL&chr(34), 0


2009-9-8 22:54
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: