这个问题的基础来自support.microsoft.com上的本教程: http://support.microsoft.com/kb/176792
To run the following code, it is necessary to add a reference to
"Microsoft Internet Controls" (Shdocvw.dll) and "Microsoft HTML Object
Library" (Mshtml.dll) to the Visual Basic project:
Dim SWs As New SHDocVw.ShellWindows
Dim IE As SHDocVw.InternetExplorer
这在 Visual Studio 2010 中工作得很好,但它似乎依赖于一些我无法使用直接命令行 vbc 编译器复制的幕后魔法。
显然命令行编译器没有“添加引用”对话框。我天真地尝试添加:
/参考:“C:\windows\system32\shdocvw.dll”
到命令行,但这没有帮助。在这两种情况下,我得到:
错误 BC30002:未定义类型“SHDocVw.ShellWindows”。
错误 BC30002:未定义类型“SHDocVw.InternetExplorer”。
我已经成功使用了来自其他语言(如 vbscript 和 autohotkey)的 shdocvw.dll(AKA Shell.Application),但我目前对 VB.NET 的了解太少,不知道我是否只是做错了还是不可能。
您必须首先运行 Tlbimp.exe 实用程序。 该工具可从 shdocvw.dll 中嵌入的类型库生成互操作库,通常在 IDE 中添加引用时自动完成。 它会生成 interop.shdocvw.dll,您需要使用 /reference 选项传递该dll。