2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« PowerShellのConvertTo-HTML出力をHTAウィンドウに表示、印刷、名前を付けて保存する。 | トップページ | out-ie.ps1 PowerShellからHTMLをIEに流し込む。(その2) »

2010年7月18日 (日)

PowerShellでは、MTAで、$ie.document.parentwindowが見えない。

STAでは見えます。なので、PowerShell_ISEで見えます。

ps1ファイルでは、MTAならSTAで起動し直します。

if([Threading.Thread]::CurrentThread.GetApartmentState() -eq "MTA"){
  PowerShell -Sta -File $MyInvocation.MyCommand.Path
  exit
}
$ie=new-object -com InternetExplorer.Application
$ie.visible=$true
$ie.navigate("about:blank")
while($ie.busy -or ($ie.readystate -ne 4)){sleep 1}
$ie.document.parentwindow.focus()

あるいは、ScriptControlで逃げます。

$ie=new-object -com InternetExplorer.Application
$ie.visible=$true
$ie.navigate("about:blank")
while($ie.busy -or ($ie.readystate -ne 4)){sleep 1}
$sc=new-object -com scriptcontrol
$sc.language="vbscript"
$sc.addobject("ie",$ie)
$sc.executestatement("ie.document.parentwindow.focus()")

« PowerShellのConvertTo-HTML出力をHTAウィンドウに表示、印刷、名前を付けて保存する。 | トップページ | out-ie.ps1 PowerShellからHTMLをIEに流し込む。(その2) »