tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: SHDocVw.InternetExplorer の Visible で エラー
投稿日: 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。