我正遇到一个奇怪的问题。
我使用以下代码查找打开的文件夹并将其关闭
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打开的情况下,我收到以下错误:
“System.MissingMemberException”类型的未处理异常 发生在Microsoft.VisualBasic.dll
其他信息:类型上的公共成员'文件夹' 找不到“HTMLDocumentClass”。
我个人不使用IE,但我的用户可能会这样做,如果我部署,这将导致问题。有没有人有解决方法或建议?
答案 0 :(得分:0)
这是预期的行为,您将获取任何打开的资源管理器或Internet Explorer窗口。您可以通过在Microsoft HTML对象库中添加对mshtml
的引用以及在Microsoft Internet Controls中添加SHDocVw
来处理此问题。
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