【发布时间】:2020-02-03 20:15:40
【问题描述】:
我有一个运行 CreateObject("MSXML2.XMLHTTP").Open "GET" 的 VBS,但是,我需要在它运行之前删除 IE11 缓存,因为 get 会不断提取网站的缓存版本,该版本在初始 get 后 1 分钟内不会过期。如果我使用RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8,则会显示一个分散注意力的对话框。
myURL = "https://localhost/"
Set ohtmlFile = CreateObject("htmlfile")
Set oXMLHttp = CreateObject("MSXML2.XMLHTTP")
oXMLHttp.Open "GET", myURL , False
oXMLHttp.setRequestHeader "Cache-Control", "no-cache"
oXMLHttp.send
If oXMLHttp.Status = 200 Then
ohtmlFile.Write oXMLHttp.responseText
ohtmlFile.Close
不改变文件缓存,在初始拉取一分钟后仍然过期。
++++++++++++++++++++++++++++++++++++++++++
myURL = "https://localhost/"
Set ohtmlFile = CreateObject("htmlfile")
Set oXMLHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
oXMLHttp.Open "GET", myURL , False
oXMLHttp.setRequestHeader "Cache-Control", "no-cache"
oXMLHttp.send
If oXMLHttp.Status = 200 Then
ohtmlFile.Write oXMLHttp.responseText
ohtmlFile.Close
oXMLHttp.responseText 不返回任何内容
++++++++++++++++++++++++++++++++++++++++++
CreateObject("WScript.Shell").Run "scripts\exe\PsExec64.exe -accepteula -nobanner -realtime -d RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8", 0, True
CreateObject("WScript.Shell").Run "scripts\exe\PsExec64.exe -accepteula -nobanner -realtime -d RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 264", 0, True
两者仍然随机显示一个弹出对话框。
【问题讨论】:
-
你尝试过这样设置请求吗? .setRequestHeader "cache-control", "no-cache" 如果没有,您可以自己测试一下是否有助于解决问题。
-
我试了一下,结果相同,到期时间仍然设置为距离初始拉动一分钟。
-
您是否可以提供一个网页示例,我们可以使用该示例测试此代码以检查问题?因为我们无法仅使用上面的代码产生问题。它可以帮助缩小问题范围。
标签: vbscript internet-explorer-11 winhttp winhttprequest ie11-developer-tools