Переходите через окна IE до [duplicate]

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

$ie = (New-Object -COM "Shell.Application").Windows()| ? { $_.Name -eq "Windows Internet    Explorer" }

Я хочу прикреплять к окнам () только тогда, когда окно IE уже открыто, и если окно IE не открыто, строка должна быть такой:

$ie = (New-Object -COM "Shell.Application")
0
задан Rohit2194017 3 May 2013 в 11:33
поделиться

2 ответа

try:

if (
     Get-Process iexplore -ea silentlycontinue | 
     Where-Object {$_.MainWindowTitle -ne ""}
)
2
ответ дан CB. 18 August 2018 в 02:30
поделиться
  • 1
    привет, спасибо, он работал :) :) :) :):) – Rohit2194017 3 May 2013 в 11:40
  • 2
    @ user2194017 Рад помочь, не забудьте принять его в качестве ответа. – CB. 3 May 2013 в 11:41
if (Get-Process iexplore) { "Yes" } else { "No" }

Я понятия не имею, работает ли это в среде служб терминалов со многими пользователями (делает ли не повышенный Get-Process просмотр только вашего собственного сеанса (и системного сеанса) для процессов?)

0
ответ дан Richard 18 August 2018 в 02:30
поделиться
  • 1
    Я бы добавил параметр -erroraction silentlycontinue, чтобы избежать исключения из-за отсутствия процесса. – CB. 3 May 2013 в 10:56
  • 2
    Я попробовал это, но это не сработало, не было открытого окна IE, и процесс get-process показывал 4 экземпляра iexplore – Rohit2194017 3 May 2013 в 11:07
  • 3
    @ user2194017: Если вы тестировали запуск IE через COM из экземпляра PSH, у вас могут быть утечки COM-ссылок (это может занять много времени, когда GC-сервер не имеет никакого управляемого давления памяти). – Richard 3 May 2013 в 15:45
Другие вопросы по тегам:

Похожие вопросы: