タイトル | : Re^2: SHDocVw.InternetExplorer の Visible で エラー |
記事No | : 11877 |
投稿日 | : 2017/08/08(Tue) 15:03 |
投稿者 | : 魔界の仮面弁士 |
下記の oIE1〜oIE8 は、当方環境ではいずれのパターンも動作しました。 そちらの環境だと oIE3.Visible = True oIE4.Visible = True oIE5.Visible = True が DISP_E_MEMBERNOTFOUND になるのでしょうか?
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '[InvalidCastException] ' IProvideClassInfo をサポートしていない COM コンポーネント、または ' 登録された相互運用機能アセンブリを含まない COM コンポーネントは、 ' __ComObject 型にラップされます。この型のインスタンスを他のクラスに ' キャストすることはできませんが、基になる COM コンポーネントが ' インターフェイスの IID の QueryInterface 呼び出しをサポートする場合は、 ' インターフェイスにキャストすることができます。 'Dim oIE0 As SHDocVw.InternetExplorerClass = CreateObject("InternetExplorer.Application")
'以下は実行できた Dim oIE1 As SHDocVw.InternetExplorerClass = New SHDocVw.InternetExplorerClass() oIE1.Navigate("http://www.fileformat.info/info/unicode/char/FF8D/") Dim oIE2 As SHDocVw.InternetExplorerClass = New SHDocVw.InternetExplorer() oIE2.Navigate("http://www.fileformat.info/info/unicode/char/3079/") Dim oIE3 As SHDocVw.InternetExplorer = CreateObject("InternetExplorer.Application") oIE3.Navigate("http://www.fileformat.info/info/unicode/char/307A/") Dim oIE4 As SHDocVw.InternetExplorer = New SHDocVw.InternetExplorerClass() oIE4.Navigate("http://www.fileformat.info/info/unicode/char/30D9/") Dim oIE5 As SHDocVw.InternetExplorer = New SHDocVw.InternetExplorer() oIE5.Navigate("http://www.fileformat.info/info/unicode/char/30DA/") Dim oIE6 As Object = CreateObject("InternetExplorer.Application") oIE6.Navigate("http://www.fileformat.info/info/unicode/char/30D8/") Dim oIE7 As Object = New SHDocVw.InternetExplorerClass() oIE7.Navigate("http://www.fileformat.info/info/unicode/char/3078/") Dim oIE8 As Object = New SHDocVw.InternetExplorer() oIE8.Navigate("http://www.fileformat.info/info/unicode/char/31F8/")
oIE1.Visible = True '成功 oIE2.Visible = True '成功 oIE3.Visible = True '成功 oIE4.Visible = True '成功 oIE5.Visible = True '成功 oIE6.Visible = True '成功 oIE7.Visible = True '成功 oIE8.Visible = True '成功
SetVisible1(oIE1, True) '成功 SetVisible1(oIE2, True) '成功 SetVisible1(oIE3, True) '成功 SetVisible1(oIE4, True) '成功 SetVisible1(oIE5, True) '成功 SetVisible1(oIE6, True) '成功 SetVisible1(oIE7, True) '成功 SetVisible1(oIE8, True) '成功
SetVisible2(oIE1, True) '成功 SetVisible2(oIE2, True) '成功 SetVisible2(oIE3, True) '成功 SetVisible2(oIE4, True) '成功 SetVisible2(oIE5, True) '成功 SetVisible2(oIE6, True) '成功 SetVisible2(oIE7, True) '成功 SetVisible2(oIE8, True) '成功
SetVisible3(oIE1, True) '成功 SetVisible3(oIE2, True) '成功 SetVisible3(oIE3, True) 'プロパティ取得できず SetVisible3(oIE4, True) 'プロパティ取得できず SetVisible3(oIE5, True) 'プロパティ取得できず SetVisible3(oIE6, True) 'プロパティ取得できず SetVisible3(oIE7, True) 'プロパティ取得できず SetVisible3(oIE8, True) 'プロパティ取得できず
SetVisible4(oIE1, True) '成功 SetVisible4(oIE2, True) '成功 SetVisible4(oIE3, True) 'プロパティ取得できず SetVisible4(oIE4, True) 'プロパティ取得できず SetVisible4(oIE5, True) 'プロパティ取得できず SetVisible4(oIE6, True) 'プロパティ取得できず SetVisible4(oIE7, True) 'プロパティ取得できず SetVisible4(oIE8, True) 'プロパティ取得できず
SetVisible5(oIE1, True) '成功 SetVisible5(oIE2, True) '成功 SetVisible5(oIE3, True) '成功 SetVisible5(oIE4, True) '成功 SetVisible5(oIE5, True) '成功 SetVisible5(oIE6, True) '成功 SetVisible5(oIE7, True) '成功 SetVisible5(oIE8, True) '成功 End Sub
Private Sub SetVisible1(Of T)(target As T, NewValue As Boolean) CallByName(target, "Visible", CallType.Let, NewValue) End Sub
Private Sub SetVisible2(Of T)(target As T, NewValue As Boolean) CallByName(target, "[DispId=402]", CallType.Let, NewValue) End Sub
Private Sub SetVisible3(Of T)(target As T, NewValue As Boolean) GetType(T).GetRuntimeProperty("Visible").SetValue(target, NewValue) End Sub
Private Sub SetVisible4(Of T)(target As T, NewValue As Boolean) GetType(T).GetProperty("Visible").SetValue(target, NewValue) End Sub
Private Sub SetVisible5(Of T)(target As T, NewValue As Boolean) GetType(T).InvokeMember("Visible", BindingFlags.SetProperty, Nothing, target, New Object() {NewValue}) End Sub
|