2017-03-12 16 views
0

私は2つのAutoItスクリプトを持っています。両方ともGlobal $oIE = _IECreate($myUrl, 1)を含んでいます。同じURLの2つのIEウィンドウを作成します。_IECreate()を使用して新しいセッションを作成

IEでは、「ファイル」メニューから「新しいセッション」を選択すると、各ウィンドウに独自のセッションが割り当てられます。しかし、2つの異なるスクリプトファイルを同時に使用すると、両方のウィンドウが同じアカウントにログインします。どのように新しいセッションですべてのIEウィンドウを開くことができますか?

答えて

1

セッションは、それぞれ固有のiexplore.exeプロセスに関連しています。必要なセッション(未テスト、エラーなしチェック)あたりのiexplore.exeの新しいインスタンスを起動します。それは問題を解決したが、私は RegWriteメソッド(「HKEY_CURRENT_USERの\ SOFTWARE \マイクロソフト\ Internet Explorerの\メイン」を追加した後

#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 
+0

おかげで、 'SessionMerging'、 'REG_DWORD'、 '00000000') ShellExecute( "iexplore.exe"、 "-nosessionmerging about:blank") –

+0

@MouadElBhiriエクスプローラのウィンドウを閉じるだけでは十分ではありません。セッションはそれぞれ固有の 'iexplore.exe' _process_に関連しています。そのレジストリ設定は、セッションを個々の_tabs_(あなたの目的に合っているかもしれません)に隔離します。 https://msdn.microsoft.com/en-us/library/hh826025(v=vs.85).aspx – user4157124

+0

@MouadElBhiri [誰かが私の質問に答えたとき、どうすればいいですか?](https://stackoverflow.com/ヘルプ/誰かの回答) – user4157124

関連する問題