VB设置WebBrowser的COOKIE、临时文件夹等路径

VB中的WebBrowser控件,自动继承了IE的绝大部分选项,它们共同按照

注册表路径HKEY_CURRENT_USER\"SOFTWARE\

MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\

User Shell Folders 下 COOKIES 项的值来设置COOKIE存储路径。我们通过改变这个值可以自定义

WebBrowser的COOKIE保存路径,但是,同时IE的COOKIE路径也被改变了。如果在改变这个值,

加载Webbrowser之后,立即恢复该项为以前的值,则不影响其他应用。大致流程如下

1、从注册表中取Cookies路径,保存

2、改变注册表中Cookie路径

3、加载Webbrowser控件或者其他基于Webbrowser的应用

4、恢复Cookie路径为以前的值

我曾向马甲管理器SwapCookie的作者PT42写信请教webbrowser设置COOKIE路径的问题,没有得到回复,

后来看到BlueFang公布的资料,才得以实现。在此对BlueFang致谢!

附上关键流程代码及演示程序cookie.zip

Dim tSet As String, tSet1 As String, tSet2 As String

tSet = REG.GetRegistryValue(HKEY_CURRENT_USER, "SOFTWARE\MICROSOFT\WINDOWS\

CURRENTVERSION\EXPLORER\User Shell Folders", "Cookies")

tSet1 = REG.GetRegistryValue(HKEY_CURRENT_USER, "SOFTWARE\MICROSOFT\WINDOWS\

CURRENTVERSION\EXPLORER\User Shell Folders", "Cache")

tSet2 = REG.GetRegistryValue(HKEY_CURRENT_USER,

"SOFTWARE\MICROSOFT\INTERNET EXPLORER\MAIN", "Window Title")

REG.SetRegistryValue HKEY_CURRENT_USER, "SOFTWARE\MICROSOFT\WINDOWS\

CURRENTVERSION\EXPLORER\User Shell Folders", "Cookies", Text_NewPath.Text, eString

REG.SetRegistryValue HKEY_CURRENT_USER, "SOFTWARE\MICROSOFT\WINDOWS\

CURRENTVERSION\EXPLORER\User Shell Folders", "Cache", Text_NewPath.Text, eString

REG.SetRegistryValue HKEY_CURRENT_USER,

"SOFTWARE\MICROSOFT\INTERNET EXPLORER\MAIN", "Window Title", Text_Title.Text, eString

internetsetoption INTERNET_OPTION_SETTINGS_CHANGED, 0, 0, 0

SendMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0

Sleep (100)

Form2.Show

REG.SetRegistryValue HKEY_CURRENT_USER, "SOFTWARE\

MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\User Shell Folders", "Cookies", tSet, eString

REG.SetRegistryValue HKEY_CURRENT_USER, "SOFTWARE\

MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\User Shell Folders", "Cache", tSet1, eString

REG.SetRegistryValue HKEY_CURRENT_USER, "SOFTWARE\

MICROSOFT\INTERNET EXPLORER\MAIN", "Window Title", tSet2, eString

type="text/javascript">