回 帖 发 新 帖 刷新版面

主题:【求助】用Internet.Application打开浏览器时,如何创建一个新的session

我有个很简单的打开ie的函数大致如下:

function openURL(url)
Dim ie As Object

Set ie = CreateObject("InternetExplorer.Application")

ie.Visible = True
ie.navigate url
end function

我的问题是:


1. 调用openURL('http://xxx/logon.action?user=admin') ,IE窗口1打开,服务器接收到请求会把用户名设置到session中。

2. 调用openURL('http://xxx/logon.action?user=tom'), IE窗口2打开,服务器设置用户名到session中。

3. 刷新窗口1,发现登录用户也变成了tom。就是说session里的值被覆盖了。

虽然打开了多个窗口,但它们依然是同一个session。

有什么办法可以做到打开一个窗口是一个新会话?这样2个用户可以同时维持登录状态了。

烦请知道的人告知一下,不胜感激!

回复列表 (共1个回复)

沙发

刚想起来,创建对象的方式,不能把会话分开,因为创建的IE都出于一个对象,无法分开
试了下,相对简单的方法只能用shell调用打开了,当然用shell方式打开有个路径问题,如果你要做成通用的,还得加一个通用路径搜索,那就很好了,
测试代码如下 :
Private Sub Command1_Click()
Dim ie As New InternetExplorer                          '引用IE controls
Set ie = CreateObject("internetexplorer.application")   '创建IE对象
ie.Visible = True                                       '设置为显示
ie.Navigate Text1.Text                                  '打开指定网址
Set ie = Nothing                                        '释放对象值
ie.Quit
End Sub

Private Sub Command2_Click()                            '调用打开
Shell "C:\Program Files\Internet Explorer\iexplore.exe " & Text1.Text, vbNormalFocus
End Sub

经测试,用shell的方式,可以在同一网站同时登录不同或相同账号
[em2]
[url=http://www.oulihua1.tk]相关信息[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册