2017-03-17 5 views
-1

Ich habe zwei Dateien (a.au3 und b.au3). Beide enthalten den gleichen Code:Öffnen Sie zwei Dateien mit demselben Code in zwei verschiedenen Fenstern

#include <IE.au3> 
#include <MsgBoxConstants.au3> 

Global $myUrl = "https://www.autoitscript.com" 
RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main','SessionMerging','REG_DWORD','00000000') 
ShellExecute ("iexplore.exe", " -nosessionmerging about:blank") 
WinWait ("Blank Page") 
Global $oIE = _IEAttach ("about:blank", "url") 
_IELoadWait ($oIE) 
_IENavigate ($oIE, $myUrl) 

Wenn ich beiden Dateien in der gleichen Zeit starten, zwei leeres Internet Explorer-Fenster geöffnet.

Was ich will ist, dass jedes Fenster zum Link navigiert. Aber was passiert, ist, dass die erste und die zweite Datei die URL zum selben Fenster navigieren. Das zweite Fenster bleibt also bei about:blank. Ich denke, es passiert, weil ich versuche, die gleiche URL in beiden Fenstern zu öffnen.

Ich brauche also eine Möglichkeit, aus zwei verschiedenen Fenstern zur selben URL zu navigieren. Ich möchte nicht _IECreate() verwenden, weil ich bereits the problem of session merging between windows mit ShellExecute() gelöst habe.

Antwort

0

Zielfenster durch den Griff statt Titeltext, wenn _IEAttach() (ungetestet, keine Fehlerüberprüfung) unter Verwendung von:

#include <WinAPIProc.au3> 
#include <IE.au3> 

Global $g_aUrl[2] 
     $g_aUrl[0] = 'https://stackoverflow.com/' 
     $g_aUrl[1] = 'https://www.autoitscript.com/' 
Global $g_aIE[UBound($g_aUrl, 1)] 

For $i1 = 0 To UBound($g_aUrl, 1) -1  
    _IECreateSession($g_aIE[$i1], $g_aUrl[$i1])  
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 

Rufen aus primären Fenstern angegebenen Prozesses behandeln (neueste IE-Instanz). Related.

Verwandte Themen