有时候我们需要用一个客户端去模拟人的行为去定时通过浏览器刷新或重新访问一个url,以便去执行,获取一些数据,查看一些状态等等。在Linux系统可以用编辑crontab文件设置定定时任务,用curl 这个功能去模拟访问url,但我在window下怎么解决呢?开始我想用批处理命令,后发现不能执行一些window里的程序,后来查到用cscript 这个命令可以在控制台窗口无视窗的情况下显示输出,关键是可以直接执行vbs,而vbs 可以编写一些复杂的代码。在vbs中写了一个死循环,然后用xmlHttp这个组件去访问一个url
提供了很多的方法和属性,其实ajax的就是通过这个组件实现的,让这个组建同步执行,把url返回的字符串打印输出到控制台中,其实url那边是一个apache,访问的外部接口URL是通过curl,这样一圈转的。
'启动命令 cscript test.vbs http://web.internetedu.org.cn/home/umeng/test
'cscript test.vbs http://web.internetedu.org.cn/home/umeng
'解释:cscript 执行脚本会在命令行显示输出,wscript 执行会弹出对话框窗口,
'后面直接是vbs 文件,文件后面是第一个参数
Dim Wshshell,Msg,i,URL
'Set Wshshell = Wscript.CreateObject("Wscript.Shell")
URL = WScript.Arguments(0)
arrHttp=array("Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP")
On Error Resume Next
'新建一个XMLHTTP组建
For i=0 To 3
Set http=CreateObject(arrHttp(i))
If isObject(http) Then
Exit For
End If
If isObject(http)=false Then
wscript.echo "XMLHttpRequest not supported"
Wscript.quit
End if
'u=Inputbox("URL:","输入URL地址")
'msgbox u
'一个死循环
do while true
http.open "POST", URL,FALSE
http.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
'http.onreadystatechange=getref("callback")
http.send "id=1111&name=liangfang"
If http.readyState=4 And http.status=200 Then
wscript.echo http.responseText
wscript.echo "XMLHTTP_CODE:"&http.readyState&" HTTP_CODE:"&http.status
End If
'If Err.Number <> 0 Then
' wscript.echo "ERROR"
'End If
'显示发送次数
'wscript.echo "SEND_COUNT:"&i
i=i+1
'延迟执行 30秒
wscript.Sleep 30*1000
'只有异步的时候才需要,现在是同步所以没有执行
Public Function callback()
If http.readyState=4 And http.status=200 Then
wscript.echo http.responseText
wscript.echo "XMLHTTP_CODE:"&http.readyState&" SHTTP_CODE:"&http.status
End if
End Function
::启动IE程序访问URL
start "" "C:\Program Files\Internet Explorer\iexplore.exe" http://www.wangchao.info
::等待1秒
start /min /w mshta vbscript:setTimeout("window.close()",1000)
::关闭/杀死进程
@taskkill /f /IM
上一篇文章博主给大家整理了《windows设置定时任务》的方法,不会的伙伴可以自行脑补。这次再给大家升级一下,用win10的【任务计划程序】打开浏览器中的网址
1.创建bat文件
首先写个bat
右键-新建-文本文档,更改下格式,把.txt改成.bat,然后右键编辑,这里命名为open_sougou.bat
2.编写bat文件
(1)输入下列内容(调用搜狗浏览器打开百度主页)
@echo off
start E:\SogouExplorer\SogouExplorer.exe "www.baidu.co
time_label = tk.Label(window, text='请输入倒计时时间(分钟):')
time_label.pack()
time_entry = tk.Entry(window)
time_entry.pack()
# 创建关闭按钮
shutdown_button = tk.Button(window, text='关闭', command=shutdown)
shutdown_button.pack()
# 进入消息循环
window.mainloop()
在这段代码中,我们使用了 `tkinter` 库来创建 GUI 界面。我们创建了一个输入框和一个按钮。输入框中的时间是以分钟为单位的。当用户点击关闭按钮时,程序会将时间转化为秒,然后执行关闭电脑的命令。
希望这段代码能帮到您!