Ton*_*ony 7 c# internet-explorer
我想从IE(.NET 4)获取当前的URL.为此,我添加了对Microsoft Interner Controls的引用并添加了代码(来自http://omegacoder.com/?p=63)
foreach (InternetExplorer ie in new ShellWindowsClass())
{
textBox1.Text = ie.LocationURL.ToString();
}
Run Code Online (Sandbox Code Playgroud)
但我得到2个错误:
1] The type 'SHDocVw.ShellWindowsClass' has no constructors defined
2] Interop type 'SHDocVw.ShellWindowsClass' cannot be embedded.
Use the applicable interface instead.
Run Code Online (Sandbox Code Playgroud)
怎么解决?
Han*_*ant 17
第二个错误导致第一个错误.打开项目的References节点,选择SHDocVw.在"属性"窗口中,将"嵌入互操作类型"更改为false.您将必须部署Interop.SHDocVw.dll程序集,您将找到构建输出目录以及您的程序.
编辑:在研究这个错误后,我找到了一个更好的方法来做到这一点.问题是只能嵌入COM 接口类型,而不能嵌入类.因此,请避免在代码中使用合成的XxxxClass包装器.让它看起来像这样:
foreach (InternetExplorer ie in new ShellWindows()) {
//...
}
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪,你通常不能在C#语言的接口类型上使用new运算符.但实际上支持COM接口.
| 归档时间: |
|
| 查看次数: |
16916 次 |
| 最近记录: |