从PowerShell脚本启动Internet Explorer

从PowerShell脚本启动Internet Explorer,powershell,Powershell,我将一些PS代码放在一起,在更大的PS脚本中执行以下操作: 测试IE进程是否已在运行 如果IE尚未运行,则启动一个新进程,在该进程中打开站点1,然后在该进程的前台选项卡中打开站点2 使IE进程全屏显示 If (-Not (Get-Process IExplore -ErrorAction SilentlyContinue)) { $navOpenInForegroundTab = 0x10000; $ie = New-Object -Com InternetExplor

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

  • 测试IE进程是否已在运行
  • 如果IE尚未运行,则启动一个新进程,在该进程中打开站点1,然后在该进程的前台选项卡中打开站点2
  • 使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吗?有没有可能阻止它显示?

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

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

这可能是ShowWindow函数的返回值。如果是这种情况,您将编写
$type::ShowWindow($ie.hwnd,3)| out null
。是的,它来自ShowWindow。如果它是一个非零值,那么窗口之前没有隐藏,即它是可见的,这就是它的意思。更多信息请点击这里:非常好,谢谢。这就是正在发生的事情,脚本现在运行B-E-A-UTIFULLY@STGdb将其作为答案发布并接受