2017年9月
          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) »