关于webbrowser的问题 如果解决二百分酬谢

来源:百度知道 编辑:UC知道 时间:2024/05/30 13:04:47
分数说明:
一般这问题能正确回答的人很少,我不想浪费分数,先给50分,问题解决了至少酬谢200分。我搜索的能力也不差,不到万不得已也不会提问。

问题简述:
我了解到webbrowser是运行在sta模式下的,单个进程共享一个session会话(注意.是进程.不是线程)。如何才能让一个webbrowser控件占一个会话。就像傲游那种多页面浏览器一样。(别急着回答.接着看)

问题表现:
窗体上有两个webbrowser,第一个是登录页面,另一个是发帖页面。如果没登录过,那发帖页面会提示“您还未登录”。webbrowser共享会话就会造成在第一个页面里登录后,第二个页面刷新一下就是登录状态了,并且重启程序后仍然是登录状态。(有人会说这很正常,不过请继续看)
如果我开两个ie,在一个ie中登录,在另一个中访问发帖页面,结果是发帖页面提示“您还未登录”。这说明了登录信息储存在session会话中而不是cookies中。

目的:
要让两个webbrowser做到和开两个ie一样的效果,session会话要独立。

已尝试的方法:
用过其他控件或组件如inet,httpxml和wb一样都是共享会话--无效。用过wb数组配合多线程--无效。同时设置过RegisterAsBrowser属性--无效。使用mdi多窗口--无效。在 百度google 搜索用过的关键字:webbrowser多页面、webbrowser sta、webbrowser 独立、webbrowser session、webbrowser多线程、webbrowser 进程、webbrowser inet配合、webbrowser 线程保护 等。。。(以上尝试失败不能保证完全被否定)

一个奇怪现象:
为什么如果登录后.vb程序关闭然后重新打开,就直接处于登录状态。而ie登录后.关闭,再开却是未登录状态。

期望中的答案:
希望您能亲自实验成功(随便找个网站实验,譬如腾讯的网站),如果实验成功,最好能给我个例子。另外请您不要从网上复制别人的东西,那些东西我基本都

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer '检测键盘输入,这里用来设置热键F10和F12
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long '设置鼠标位置的API
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, _
ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) '模拟鼠标按键的API
'-------------鼠标API的相关常数-----------
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10

Dim DoLoop As Boolean '用来控制循环的变量
Private WithEvents oControl As Timer '用来动态添加控件的变量

Private Sub MyMain()

Do '循环开始

DoEvents '释放一下程序的控制权
Pause 2 '延时2000毫秒 大厅等待中
If Not DoLoop Then Exit