易语言超文本浏览框置cookie

解决精易模块cookie操作无效的问题

Posted by 浅唱 on February 4, 2020

源码介绍

我在使用精易模块进行超文本浏览框操作的时候发现cookie怎么清理都清理不掉,没作用
我是执行一次清理一次cookie,在网络上找到这段cookie操作源码,现在分享给大家

程序集代码

.版本 2

.子程序 ie_置cookie, , 公开, 设置或删除cookie
.参数 域名, 文本型
.参数 cookie, 文本型, 可空, 空文本则删除
.局部变量 host, 文本型
.局部变量 i, 整数型
.局部变量 tmps, 文本型, , "0"
.局部变量 tmp, 文本型
.局部变量 name, 文本型
.局部变量 len, 整数型
.局部变量 value, 文本型
.局部变量 bin, 字节集
.局部变量 hand, 整数型
.局部变量 pt, 整数型

.如果真 (cookie = “”)
	bin = 取空白字节集 (4096)
	hand = net_FindFirstUrlCacheEntry (“Cookie:”, bin, 4096)  ' Cookie:还可以设置为core. visited:(历史记录)等
	i = hand
	.判断循环首 (i > 0)
		pt = 取字节集数据 (取字节集中间 (bin, 5, 4), 3, )  ' 取回当前缓存指针
		tmp = 指针到文本 (pt)  ' 取回Cookie文本信息
		.如果真 (寻找文本 (tmp, host, , 真) ≠ -1)
			net_DeleteUrlCacheEntry (tmp)  ' 删除符合特征的Cookie
		.如果真结束
		i = net_FindNextUrlCacheEntry (hand, bin, 4096)  ' 取回当前缓存位置
	.判断循环尾 ()
	net_FindCloseUrlCache (hand)  ' 关闭IE缓存
	net_InternetSetOptionA (0, 42, 0, 0)  ' 删除sessioncookie
	返回 ()
.如果真结束

tmps = 分割文本 (cookie, “;”, )
.计次循环首 (取数组成员数 (tmps), i)
	tmp = tmps [i]
	.如果真 (tmp = “”)
		到循环尾 ()  ' 本源码来自三叶资源网(www.sanye.cx)
	.如果真结束
	len = 取文本长度 (tmp)
	i = 寻找文本 (tmp, “=”, , 假)
	i = 选择 (i ≤ 0, len, i - 1)
	name = 删首尾空 (取文本左边 (tmp, i))
	value = 删首尾空 (取文本右边 (tmp, len - i - 1)) + “;expires=Wen, 01-Jan-2099 00:00:01 GMT”
	net_InternetSetCookieA (“https://” + host, name, value)
	net_InternetSetCookieA (“http://” + host, name, value)
.计次循环尾 ()

DDL代码

.版本 2

.DLL命令 net_FindFirstUrlCacheEntry, 整数型, "Wininet.dll", "FindFirstUrlCacheEntryA", 公开, 进入IE缓存
	.参数 lpszUrlSearchPattern, 文本型
	.参数 lpFirstCacheEntryInfo, 字节集, , Any型,根据需要可以设置成不同的类型
	.参数 lpdwFirstCacheEntryInfoBufferSize, 整数型, 传址

.DLL命令 net_DeleteUrlCacheEntry, 整数型, "Wininet.dll", "DeleteUrlCacheEntryA", 公开, 删除url缓存
	.参数 lpszUrlName, 文本型

.DLL命令 net_FindNextUrlCacheEntry, 整数型, "Wininet.dll", "FindNextUrlCacheEntryA", 公开, 下一条缓存
	.参数 hEnumHandle, 整数型
	.参数 lpNextCacheEntryInfo, 字节集, , Any型,根据需要可以设置成不同的类型
	.参数 lpdwNextCacheEntryInfoBufferSize, 整数型, 传址

.DLL命令 net_FindCloseUrlCache, 整数型, "Wininet.dll", "FindCloseUrlCache", 公开, 关闭IE缓存
	.参数 hEnumHandle, 整数型

.DLL命令 net_InternetSetOptionA, 逻辑型, "Wininet.dll", "InternetSetOptionA", 公开, 设置IE属性
	.参数 hInternet, 整数型
	.参数 dwOption, 整数型
	.参数 lpBuffer, 整数型
	.参数 dwBufferLength, 整数型

.DLL命令 net_InternetSetCookieA, 逻辑型, "wininet.dll", "InternetSetCookieA", 公开, 设置cookie
	.参数 域名, 文本型
	.参数 名称, 文本型
	.参数 内容, 文本型