|
发表于 2020-1-11 08:48:46
|
显示全部楼层
本帖最后由 halong1000 于 2020-1-11 09:01 编辑
我用的是TC自带的浏览器控件,设置了调用本地IE和独立cookie,成功操作的流程如下:
1.先登录,在获取cookie
2.利用网控件自带的命令获取cookie
3.想再次登录时,利用网控件自带的命令清除所有cookie
4.将之前获取到的cookie添加到当前IE中
例如获取到的cookie如下:
Host = "三W点xxx……"
cookie = "__cfduid=d4ac332153e8c2f0a416b1841b6ed93951578701875"
那么:
cookie的关键字 = "__cfduid"
cookie的值 = “d4ac332153e8c2f0a416b1841b6ed93951578701875”
所以:
写入cookie到IE浏览器的命令就是:
dllcall("wininet.dll" , "BOOL" , "InternetSetCookieA" , "char *", Host ,"char *" , cookie的关键字 , "char *" , cookie的值)
如果cookie有多组参数,我用的是FOR 循环多次写入
5.利用网页控件命令 直接跳转到之前登陆后的某个网页即可
主要代码如下:
cookie=网页获取cookie("explorer")
cookie_replace(cookie)
webgo("explorer",url)
//替换cookie的函数function cookie_replace(this_cookie)
var cookie_wrong=webgetcookie("explorer")
traceprint("出错时的cookie: "&cookie_wrong)
webclearcookie()
var cookie_array
var host="三W点xxx……"
var n = strsplit(this_cookie,";",cookie_array)
for(var i = 0; i < arraysize(cookie_array); i++)
//traceprint("替换新的cookie: "&cookie_array)
var cookies
strsplit(cookie_array,"=",cookies)
dllcall("wininet.dll","BOOL","InternetSetCookieA","char *",host",char *",cookies[0],"char *",cookies[1])
end
var cookie_now=webgetcookie("explorer")
traceprint("修复后的cookie: "&cookie_now)
end
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|