打开在IE网址的阵列,IE是否打开或不使用的PowerShell
我已经创建了打开在IE一个或多个URL的阵列的功能:第一URL应该在第一个选项卡被打开;连续的URL应该在后台标签中打开。如果IE已经打开,则应在新标签中打开第一个URL以保留现有URL。打开在IE网址的阵列,IE是否打开或不使用的PowerShell
function OpenSites($sites) {
$isFirstSite = $true
foreach ($site in $sites) {
if ($isFirstSite) {
if (Get-Process iexplore -ea silentlycontinue | Where-Object {$_.MainWindowTitle -ne ""}) {
$ie.Navigate2($site, $navOpenInNewTab)
} else { $ie.Navigate2($site) }
$isFirstSite = $false
} else { $ie.Navigate2($site, $navOpenInBackgroundTab) }
}
}
我猜如果IE之前没有启动过,第一个URL应该只在第一个标签中打开?所有连续的URL都应该在后台标签中打开,对吧?
更新:我希望这个代码是你想要什么:
$navOpenInNewTab = 0x800;
$navOpenInBackgroundTab = 0x1000;
$ie = $null
$newInstance = $false
if (Get-Process iexplore -ea silentlycontinue | Where-Object {$_.MainWindowTitle -ne ""}) {
$ie = (New-Object -COM "Shell.Application").Windows() | ? { $_.Name -eq "Internet Explorer" } | Select-Object -First 1
sleep -milliseconds 500
$ie.visible = $true
$newInstance = $false
} else {
$ie = New-Object -COM "InternetExplorer.Application"
sleep -milliseconds 500
$ie.visible = $true
$newInstance = $true
}
#[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
#[Microsoft.VisualBasic.Interaction]::AppActivate("$($ie.LocationName) $($ie.Name)")
sleep -milliseconds 50
Write-Host $newInstance
function OpenSites($sites) {
$isFirstSite = $true
foreach ($site in $sites)
{
if ($isFirstSite -eq $true)
{
if($newInstance) {
$ie.Navigate2($site)
} else {
$ie.Navigate2($site, $navOpenInNewTab)
}
} else {
$ie.Navigate2($site, $navOpenInBackgroundTab)
}
$isFirstSite = $false
}
}
OpenSites -sites "www.bing.com","www.heise.com"
谢谢;正如您可能已经猜到的那样,我正试图通过引入函数来扩展脚本.................... 如果IE在第一次运行时已经打开,则两个OpenSites网址在后台标签中打开。在第二次运行时,跳过对具有指定字符串的URL是否打开的测试,并且再次打开相同的OpenSites URL .................... 如果IE尚未在第一次运行时打开,则OpenSites URL按预期打开。在第二次运行中,测试成功,但下一个OpenSites URL在后台选项卡中打开。 – user2319146
(1)否:第一个或唯一的OpenSites URL应在新选项卡中打开。 (2)我有一个第二功能的开始,但在其他方面使用测试[这里](https://*.com/q/46129804/2319146)。 (3)按照(1)。 – user2319146
好的,我认为更新应该现在就完成。 我注意到脚本在从shell而不是PoSH ISE执行时的行为有所不同。奇怪。 – wp78de
你可以在if语句把它包装成链接在这里:https://*.com/questions/16356098/powershell-how-to -check-IF-任何实例 - 的 - 互联网资源管理器中,已经运行。 如果( 获取进程IEXPLORE电子艺界silentlycontinue | 位置对象{$ _ MainWindowTitle -ne “”} ) –
我调整我的问题响应您的评论。如果IE尚未打开,为什么打开空的第一个选项卡? – user2319146
您获取/创建$ ie实例的部分缺失。您应该始终提供[最小,完整和可验证示例](https://*.com/help/mcve)。 – wp78de