标题: VBS如打开百度搜索,其中关键字从配置文件提取? [打印本页]
作者: xtavvf 时间: 2008-11-23 12:03 标题: VBS如打开百度搜索,其中关键字从配置文件提取?
Set WshShell=wscript.createobject("Wscript.Shell")
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
objIE.document.parentwindow.clipboardData.SetData "text","关键字"
objIE.Quit
set ierunner = CreateObject("wscript.shell")
ierunner.run "cmd /c start iexplore http://www.baidu.com",0
wscript.sleep 3000
WshShell.Sendkeys("^v")
ierunner.sendkeys "{ENTER}"
高手 帮我改下 ~
如打开百度搜索 其中关键字从配置文件提取` 一行为一个关键字 (中文)
作者: rat 时间: 2008-11-23 14:34
打开百度搜索k.txt的第一行的批处理:- @set /p k=<k.txt
- @start iexplore "http://www.baidu.cn/s?wd=%k%"
复制代码
作者: xtavvf 时间: 2008-11-23 14:39 标题: 回版主
我是想要个VBS 打开百度输入关键字 然后回车
关键字是从配置文件sf.ini中随机输入 一行为一个关键字 ,N行随机输入
作者: rat 时间: 2008-11-23 15:35
- Option Explicit
-
- OpenBaidu GetRandomLine("k.txt")
-
-
-
- Sub OpenBaidu(sKey)
- Dim oShell
- Set oShell = CreateObject("WScript.Shell")
- oShell.Run "iexplore http://www.baidu.cn/s?wd=" + sKey
- Set oShell = Nothing
- End Sub
-
- Function GetRandomLine(sFile)
- Dim oFso, oFile, iLineNo
- Set oFso = CreateObject("Scripting.FileSystemObject")
- Set oFile = oFso.OpenTextFile(sFile)
- iLineNo = GetRandom(GetFileLineCount(sFile))
- Do Until oFile.AtEndOfLine
- If iLineNo = oFile.Line Then
- GetRandomLine = oFile.ReadLine
- Exit Do
- Else
- oFile.SkipLine
- End If
- Loop
- oFile.Close
- Set oFile = Nothing
- Set oFso = Nothing
- End Function
-
- Function GetFileLineCount(sFile)
- Dim oFso, oFile
- Set oFso = CreateObject("Scripting.FileSystemObject")
- Set oFile = oFso.OpenTextFile(sFile)
- While Not oFile.AtEndOfLine
- oFile.SkipLine
- Wend
- GetFileLineCount = oFile.Line
- oFile.Close
- Set oFile = Nothing
- Set oFso = Nothing
- End Function
-
- Function GetRandom(n)
- Randomize
- GetRandom = Int(Rnd * n + 1)
- End Function
复制代码
[ 本帖最后由 rat 于 2008-11-23 15:40 编辑 ]
作者: xtavvf 时间: 2008-11-23 22:59
非常感谢 版主 虽然不是我想要的 但是还要 感谢你
@echo off
setlocal enableDelayedExpansion
for /f "delims=" %%i in (sh.ini) do set/a n+=1
set/a R=%random%%%n
for /f "delims=" %%i in ('more +%R% sh.ini') do set "a=%%i"&goto :next
:next
if "%~1" equ "" start/b cmd /c "%~fs0 a>>a.vbs"
echo Set WshShell=wscript.createobject("Wscript.Shell")
echo Set objIE = CreateObject("InternetExplorer.Application")
echo objIE.Navigate("about:blank")
echo objIE.document.parentwindow.clipboardData.SetData "text","%a%"
echo objIE.Quit
echo set ierunner = CreateObject("wscript.shell")
echo ierunner.run "cmd /c start iexplore http://www.baidu.com",0
echo wscript.sleep 4000
echo WshShell.Sendkeys("^v")
echo ierunner.sendkeys "{ENTER}"
这才是我想要的
也请版主帮我修改一下
作者: rat 时间: 2008-11-23 23:25
我是想要个VBS 打开百度输入关键字 然后回车
关键字是从配置文件sf.ini中随机输入 一行为一个关键字 ,N行随机输入
原帖由 xtavvf 于 2008-11-23 22:59 发表
非常感谢 版主 虽然不是我想要的 但是还要 感谢你
……,写剪切板再Sendkeys?思路不好。我给出的代码是完全符合你的要求的。
作者: everest79 时间: 2008-11-24 01:23
前此天在问问上写过一个,也是类似于重复获取文件行数,FSO每次都要去读文件,太麻烦,就读到内存,用正则子集分行,速度快一些,改过来看看- Dim objIE,Lines
- CreateIe
- RegExpTest(ReadText("sh.ini"))
-
- Function RegExpTest(string)
- msgbox lines
- Set RegEx1=New RegExp
- RegEx1.Pattern="(.*)(\n)"
- RegEx1.IgnoreCase=True
- RegEx1.Global=True
- Set A=RegEx1.Execute(string)
- Do
- Set AA=A(Int((Lines-1)*rnd))
- BB=AA.SubMatches(0)
- SendWeb BB
- WScript.Sleep 5000
- Loop
- End Function
-
- Sub SendWeb(sText)
- With objIe
- .Navigate "www.baidu.com"
- Do While (.Busy)
- Wscript.Sleep 200
- Loop
- .Visible=1
- .Document.All.wd.Value=sText
- .Document.All.sb.click
- End With
- End Sub
-
- Function CreateIe
- Set objIE=WScript.CreateObject("InternetExplorer.Application","UE_")
- objIE.Navigate("about:blank")
- End Function
-
- Function ReadText(FilePath)
- Dim Fso,Rso
- Set Fso=CreateObject("Scripting.FileSystemObject")
- Set Gso=Fso.GetFile(FilePath)
- Set Rso=Gso.OpenAsTextStream(1)
- ReadText=Rso.ReadAll
- Lines=Rso.Line
- Set Fso=Nothing
- End Function
-
- Sub UE_OnQuit()
- WScript.Quit
- End Sub
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |