我创建了一个在IE中打开一个或多个网址数组的函数:第一个网址应该在第一个标签中打开;应在后台标签中打开连续的URL。如果IE已经打开,则应在新标签中打开第一个网址,以保留现有网址。
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) }
}
}
答案 0 :(得分:1)
我想如果以前没有启动过IE,那么第一个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"