我试图连接到网络浏览器控件,但它不断抛出异常,即 iwebbrowser2 应该实现 iwebbrowser2 类似的东西,然后我用谷歌搜索并找到了解决方案,选择 com 对象,然后从那里选择微软网络浏览器后,我得到了控制以应用于表单我做到了。
接下来写代码
var t = new Thread(() =>
{
Form1 frm1 = new Form1();
//new FormDialogWatcher(frm1.Handle);
Settings.AutoStartDialogWatcher = false;
var ie = new IE( frm1.WebBrowser1);
ie.GoTo("http://www.google.com");
});
t.SetApartmentState(ApartmentState.STA);
t.Start();
正如堆栈溢出中的其他线程建议。添加参考 introp.SHdocve 但是当我构建 68 时发生错误:
错误 64
无法在程序集“e:\XMLreader\lib\Interop.SHDocVw.dll”和“e:\XMLreader\XMLreader\obj\x86\Debug\Interop.SHDocVw.dll”中嵌入互操作类型“SHDocVw.tagREADYSTATE”。onside 将“嵌入互操作类型”属性设置为 false。
我右键单击此 dll 并将嵌入互操作更改为 false 但没有效果。
我注释掉了var ie = new IE( frm1.WebBrowser1);
,所有 68 个错误都消失了。