使用WinINet
InternetGetCookie
和InternetSetCookie
函数,在应用程序中获取和设置cookie非常简单,该应用程序通过WinINet
发出Web请求。
但是,到目前为止我还没有找到清除cookie的方法。
使用空白数据(InternetSetCookie
或L""
)调用NULL
无效(无论是否指定了Cookie名称,均尝试使用)。
尝试了FindFirst/NextUrlCacheGroup
,DeleteUrlCacheGroup
以及FindFirst/NextUrlCacheEntry
,DeleteUrlCacheEntry
组合。仍然没有运气。
有什么想法吗?
答案 0 :(得分:7)
箕,
我遇到了同样的问题,我的一位同事帮助我解决了这个问题。你需要打电话:
InternetSetOption(0, 42, NULL, 0);
答案来自here。
这对我的应用程序起了作用,我希望它也适合你。
编辑:
函数调用中的“42”值代表“INTERNET_OPTION_END_BROWSER_SESSION”标志,该标志“刷新硬盘驱动器上的密码缓存中未使用的条目。同时重置同步模式为每个会话一次时使用的缓存时间。此选项不需要缓冲区。这由InternetSetOption使用。“ (http://msdn.microsoft.com/en-us/library/aa385328%28v=vs.85%29.aspx)
答案 1 :(得分:0)
这是一篇非常古老的帖子,但我想我会添加我的发现,因为我遇到了类似的问题 - 要清除cookie,你需要将它的过期日期设置为过去的日期。这也适用于会话cookie:
InternetSetCookie(“http://someurl.com”,“mycookie”“somevalue; expires = Mon,01 Jan 0001 00:00:00 GMT”);
答案 2 :(得分:0)
单击“ Internet属性”对话框(“常规”选项卡)上的“排除...”按钮。
仅选中“ Cookies和站点数据”复选框。使用API监视器(http://www.rohitab.com/apimonitor)来监视“删除浏览历史记录”对话框
查看完成的操作,并使用提供的Windows API函数执行相同的操作。我以这种方式找到了解决方案