|
分類:[VB.NET/VB2005 以降]
いつも参考にさせてもらっています
今回もよろしくお願いします
Windows7
VisualBasic 2010
FrameWork4.0
のWindwosApplicationにてIE11を制御しています
1回目の操作は正常に終了するのですが2回目からはgetElementByIdにてエラーが発生します
System.NotSupportedException
HRESULT からの例外:0x800A01B6
場所 Microsoft.VisualBasic.CompilerServices.LateBinding.LateGet(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack)
場所 Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)
Button1.click()を実行しなければエラーは発生しなくなります
この処理に何かあることまではわかっているのですが・・・
2回目からということで解放関連があやしいと思ってはいるのですが解決できませんでした
何か他に考えられることはないでしょうか?
発生するサンプルコードです
Dim SO As Object = CreateObject("Shell.Application")
Dim ShWins As Object = SO.Windows()
For Each IE As Object In ShWins
If IE.LocationURL.ToString.ToUpper = TargetUrl.ToUpper Then
Dim Form1 As Object = IE.Document
Dim Button1 As Object = Form1.getElementById("Button1")
If Button1 IsNot DBNull.Value Then
Button1.click()
System.Runtime.InteropServices.Marshal.ReleaseComObject(Button1)
End If
System.Runtime.InteropServices.Marshal.ReleaseComObject(Form1)
End If
System.Runtime.InteropServices.Marshal.ReleaseComObject(IE)
Next
System.Runtime.InteropServices.Marshal.ReleaseComObject(ShWins)
System.Runtime.InteropServices.Marshal.ReleaseComObject(SO)
|