WSHスクリプトからHTAを操作する。
WSHなどのスクリプトからIEを起こして、操作することが出来ますが、
HTAの場合は、そういうことが出来ません。そこをなんとかして、
HTAのWindowオブジェクトをWSHなどのスクリプトから操作します。
WSHからIEを駆動するときは、セキュリティゾーンの束縛を受けますが、
HTAなら自由にオブジェクトを組み込めます。
HTAオブジェクト作成関数
Function CreateHtaObject()
Dim wShell
Dim Shell
Dim ie
Dim window
Set wShell=CreateObject("WScript.Shell")
wShell.Run "MSHTA.EXE ""javascript:void(new ActiveXObject('InternetExplorer.Application').PutProperty('"&WScript.ScriptName&"',window));"""
Set Shell=CreateObject("Shell.Application")
Do
For Each ie In Shell.Windows()
If Not IsEmpty(ie.GetProperty(WScript.ScriptName)) Then
Set window=ie.GetProperty(WScript.ScriptName)
If TypeName(window)="HTMLWindow2" Then
Set CreateHtaObject=window
ie.Quit
Exit Do
Else
MsgBox TypeName(window)
End If
End If
Next
WScript.Sleep 100
Loop
End Function
その使用例
Option Explicit
Dim hta
Set hta=CreateHtaObject()
hta.document.title=WScript.ScriptName
hta.alert hta.location
Do While TypeName(hta)="HTMLWindow2"
WScript.Sleep 100
Loop
MsgBox "HTA Ended."
WScript.Quit