【发布时间】:2014-12-31 01:16:14
【问题描述】:
我已经将一些 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 并且可以阻止它显示吗?
【问题讨论】:
-
这可能是 ShowWindow 函数的返回值。如果是这种情况,你会写
$type::ShowWindow($ie.hwnd, 3) | out-null。 -
是的,它来自 ShowWindow。如果它是一个非零值,则该窗口以前没有隐藏,即它是可见的,这就是它的意思。更多信息在这里:msdn.microsoft.com/en-us/library/windows/desktop/…
-
非常好 - 谢谢。这就是发生的事情,脚本现在运行 B-E-A-UTIFULLY
-
@STGdb 将其发布为答案并接受
标签: powershell