从PowerShell脚本启动Internet Explorer

时间:2014-12-30 13:29:24

标签: powershell

我已经将一些PS代码放在一起,在更大的PS脚本中执行以下操作:

  • 测试IE进程是否已在运行
  • 如果IE尚未运行,请启动一个新流程,在该流程中打开一个站点,然后在该流程的前台选项卡中打开站点二
  • 使IE进程全屏显示

    If (-Not (Get-Process IExplore -ErrorAction SilentlyContinue))
        {
        $navOpenInForegroundTab = 0x10000;
        $ie = New-Object -Com InternetExplorer.Application
        $ie.Visible = $True;
        $ie.Navigate2("https://stackoverflow.com");
        $ie.Navigate2("http://superuser.com", $navOpenInForegroundTab);
    
    $sw = @'
    [DllImport("user32.dll")]
    public static extern int ShowWindow(int hwnd, int nCmdShow);
    '@
    
        $type = Add-Type -Name ShowWindow2 -MemberDefinition $sw -Language CSharpVersion3 -Namespace Utils -PassThru
        $type::ShowWindow($ie.hwnd, 3) # 3 = maximize 
        }
    

一切似乎都运行正常,但在此代码运行后,它会在PowerShell窗口中显示数字 24 (我从命令行启动PS)。任何人都可以告诉我为什么在运行上面的代码时显示 24 并且可以阻止它显示?

1 个答案:

答案 0 :(得分:1)

这是ShowWindow函数的返回值。要忽略结果,请使用:

$type::ShowWindow($ie.hwnd, 3) | out-null