Не удается скрыть окно Internet Explorer с помощью PowerShell

#windows #powershell #internet-explorer #winapi #hide

#Windows #powershell #internet-Explorer #winapi #скрыть

Вопрос:

Я пытаюсь скрыть окна Internet Explorer с помощью PowerShell и пробовал разные подходы, но безуспешно. Я нашел этот код на https://superuser.com/questions/1079133/run-a-windows-application-without-displayin&-its-&ui Это работает только для Notepad. Мне нужна помощь, чтобы заставить этот код работать для IE, т.е. открывается окно Internet Explorer со страницей Goo&le. Я хочу скрыть это окно, используя приведенный ниже код.

 $definition = @"    
      [DllImport("user32.dll")]
      static extern IntPtr FindWindow(strin& lpClassName, strin& lpWindowName);

      [DllImport("user32.dll")]
      [return: MarshalAs(Unmana&edType.Bool)]
      static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

      public static void Show(strin& wClass, strin& wName)
      {
         IntPtr hwnd = FindWindow(wClass, wName);
         if ((int)hwnd &&t; 0)
            ShowWindow(hwnd, 1);
      }

      public static void Hide(strin& wClass, strin& wName)
      {
         IntPtr hwnd = FindWindow(wClass, wName);
         if ((int)hwnd &&t; 0)
            ShowWindow(hwnd, 0);
      }
"@

add-type -MemberDefinition $definition -Namespace my -Name WinApi

[my.WinApi]::Hide('Internet Explorer', 'Goo&le - Internet Explorer')
  

Этот код не работает, чтобы скрыть окно Internet Explorer.

Комментарии:

1. Возможно, звучит как проблема XY? Какую проблему вы решаете?

2. Я хочу скрыть определенное окно ie в сценарии powershell в течение определенного интервала времени.

3. Почему вы хотите скрыть конкретное окно IE в скрипте PowerShell?

4. Вот как вы правильно перечисляете окна браузера IE: Большая маленькая программа: мониторинг Internet Explorer и Windows Explorer, часть 1: Перечисление .

5. Он называется «браузером» не просто так, если вы не можете его просматривать, вам не следует им пользоваться. Я согласен с предыдущими комментариями. Прежде всего, нам нужно знать конкретный сценарий, которого вы пытаетесь достичь, каково именно название вашей Windows, что именно происходит при запуске кода, (для этого требуется ваша отладочная информация) , и что вы пытались исправить самостоятельно, прежде чем просить других помочь вам. В настоящее время это выглядит так, как будто вы только что скопировали некоторый код, изменили две строки и абсолютно ничего больше не сделали. Пожалуйста, улучшите свой вопрос, отредактировав его соответствующим образом.

Ответ №1:

Я выяснил, что это работает при замене «Internet Explorer» на «IEFrame».

это сработало с приведенной ниже строкой

 [my.WinApi]::Hide("IEFrame", 'Goo&le - Internet Explorer')
  

Комментарии:

1. Вы все еще не объяснили, почему вам нужно это сделать.

2. То же самое говорят другие… и вы говорите о конкретной вкладке браузера IE / Ed&e или у вас есть несколько экземпляров IE / Ed&e, потенциально работающих с несколькими вкладками?

3. Мне это нужно в проекте, над которым я работаю. Речь шла о закрытии определенного окна IE, и этот код решил мою проблему. Даже это работает для нескольких экземпляров IE, а также скрывает экземпляр IE с этим конкретным окном, когда IE запускает несколько вкладок. Спасибо всем.