使用_IECreate()创建新会话

时间:2017-03-12 02:13:55

标签: session internet-explorer autoit

我有两个AutoIt脚本。两者都包含Global $oIE = _IECreate($myUrl, 1)。他们为同一个URL创建了两个IE窗口。

在IE中,选择"新会话"来自" file"菜单,每个窗口都有自己的会话。但是同时使用两个不同的脚本文件,两个窗口都登录到同一个帐户。如何使用新会话打开每个IE窗口?

1 个答案:

答案 0 :(得分:1)

会话与每个唯一的iexplore.exe进程相关。每个必需的会话启动iexplore.exe的新实例(未经测试,无错误检查):

#include <IE.au3>

Global Const $g_sUrl = 'https://stackoverflow.com/'
Global       $g_aIE[2]

For $i1 = 0 To UBound($g_aIE, 1) -1    
    _IECreateSession($g_aIE[$i1], $g_sUrl)    
Next

Func _IECreateSession(ByRef $oIE, Const $sUrl)
    Local Const $iPID = ShellExecute('iexplore.exe', '-nosessionmerging about:blank')
    Local       $aWnd

    WinWait('Blank Page')       
    $aWnd = _WinAPI_EnumProcessWindows($iPID, True)
    $oIE  = _IEAttach($aWnd[1][1], 'hwnd')    
    _IELoadWait($oIE)
    _IENavigate($oIE, $sUrl)

    Return $iPID    
EndFunc