Delphi 更改单个WebBrowser控件实例的缓存存储位置

Delphi 更改单个WebBrowser控件实例的缓存存储位置,delphi,internet-explorer,webbrowser-control,wininet,twebbrowser,Delphi,Internet Explorer,Webbrowser Control,Wininet,Twebbrowser,首先,感谢大家花时间阅读这个问题 我正在将Microsoft WebBrowser ActiveX控件嵌入到我的应用程序中。通常,此类WebBrowser实例将cookie和缓存保存到系统默认位置C:\Users\${foo}\AppData\Roaming\Microsoft\Windows\cookies 我想将cookie存储在另一个目录中。确认WebBrowser控件使用WinINet访问缓存和cookie。我想我应该用合适的选项标志调用InternetSetOption。有人能解释一下

首先,感谢大家花时间阅读这个问题

我正在将Microsoft WebBrowser ActiveX控件嵌入到我的应用程序中。通常,此类WebBrowser实例将cookie和缓存保存到系统默认位置
C:\Users\${foo}\AppData\Roaming\Microsoft\Windows\cookies


我想将cookie存储在另一个目录中。确认WebBrowser控件使用
WinINet
访问缓存和cookie。我想我应该用合适的选项标志调用
InternetSetOption
。有人能解释一下吗?

WinInet不提供通过编程更改其存储文件夹路径的选项。Cookie和缓存文件夹的位置是调用用户配置文件的一部分

具体而言,它们由和shell文件夹(以及在Vista+上)确定,这些文件夹在以下注册表项中配置:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

谢谢要求是,当我的WebBrowser控制访问Internet时,cookie和缓存不应存储在MSIE所在的位置。如果我更改注册表项,MSIE也会将相同的数据发送到新位置,不是吗?是的,任何其他基于WInInet或WinHTTP的应用程序,或任何直接使用Cookie/Cache文件夹的应用程序都会这样做。你运气不好,你不能让你的WebBrowser控件使用自己的文件夹而不影响任何其他应用程序。找到另一个没有该限制的第三方WebBrowser控件。我看到了两个中文浏览器(SogouExplorer和360 SafeBrowser),它们将管理各个目录中的缓存/cookies/历史记录项。这很有趣,但可能它们不是基于WinInet的。如果WinInet是一个错误的方式,我可能应该看看其他的方向。WinInet没有提供你想要的自由度。例如,EmbeddedWB是TWebBrowser的包装器。换言之,它没有专门处理饼干的东西。不可能,使用TChromium