Объект Powershell com с параметрами

Я хочу написать сценарий powershell, который откроет экземпляр Internet Explorer как com-объект, чтобы я мог им манипулировать. Проблема в том, что мне нужно запустить его с параметром, чтобы убедиться, что IE запускается как новый сеанс.

Параметр, который мне нужно передать, это -noframemerging. Мне нужно передать это, чтобы каждый экземпляр был новым сеансом. Вот код, который я использовал для запуска экземпляра.

$ie = new-object -com "InternetExplorer.Application" 

Если бы кто-нибудь мог помочь мне понять, как создать несколько объектов в качестве нового сеанса в IE, это было бы фантастически!


person jonfriesen    schedule 19.08.2013    source источник
comment
citator5.rssing.com/browser.php?indx=4016525&item=184   -  person David Brabant    schedule 19.08.2013


Ответы (1)


Вот мое решение:

$IEProcess = [System.Diagnostics.Process]::Start("iexplore", "-noframemerging")
Sleep -Seconds 1
$ie = $(New-Object -ComObject "Shell.Application").Windows() | ? {$_.HWND -eq $IEProcess.MainWindowHandle}

Я запускаю экземпляр с библиотекой System.Diagnostic.Process, я использовал Start-Process, но получил некоторые странные результаты, это исправило это. На данный момент у меня есть открытый экземпляр IE с переключателем noframemerging и переменной, указывающей на процесс.

Я бросил туда сон, чтобы дать ком-объекту возможность построить, прежде чем пытаться ссылаться на него.

Затем я беру все объекты Windows com и выбираю тот, у которого есть дескриптор (HWND), такой же, как у только что запущенного процесса, и назначаю его своей переменной $ie.

Конечным результатом является то, что у меня есть переменная, которая ссылается на com-объект Internet Explorer, который не зависит от всех других сеансов. Причина, по которой мне это понадобилось, в частности, заключается в том, что я открываю много экземпляров IE и захожу на веб-сайт с разными учетными записями пользователей, если они совместно используют сеанс, страница входа пропускается, и они уже будут зарегистрированы как первый пользователь, который вошел в систему. .

Спасибо за всю помощь, ребята!

person jonfriesen    schedule 19.08.2013