繁体   English   中英

VB.net关闭文件夹-IE打开时不起作用

[英]VB.net closing folder - doesn't work when IE open

我遇到的奇怪问题。

我正在使用以下代码查找打开的文件夹并关闭它

Dim sh = CreateObject("shell.application")
For Each item In sh.Windows
    If item.document.folder.self.Path = DBFolder Then
        item.Quit()
    End If
Next

这是很奇怪的部分,除非打开Internet Explorer窗口,否则它会按预期工作。 IE打开后,出现以下错误:

Microsoft.VisualBasic.dll中发生了类型为'System.MissingMemberException'的未处理的异常

附加信息:找不到类型为“ HTMLDocumentClass”的公共成员“文件夹”。

我个人不使用IE,但是我的用户可能这样做,如果我进行部署,这会引起问题。 有人有解决方法或建议吗?

这是预期的行为,您将选择任何打开的资源管理器或Internet资源管理器窗口。 您可以通过添加引用来处理这个mshtml在Microsoft HTML对象库,也SHDocVw在Microsoft Internet控制。

Add Reference > COM > Type Libraries > Microsoft HTML Object Library

Add Reference > COM > Type Libraries > Microsoft Internet Controls

    Dim sh As New SHDocVw.ShellWindows

    For Each item In sh

        If Not TypeOf item.Document Is mshtml.HTMLDocument Then
            MessageBox.Show("it is not an IE window! " + item.Path())
        Else
            MessageBox.Show("it is an IE window!" + item.Path())
        End If


    Next item

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM