使用interop.Shdocvw时出错

时间:2010-12-23 08:08:58

标签: c# interop watin shdocvw

我试图连接到网络浏览器控件,但它不断抛出异常,iwebbrowser2应该实现这样的iwebbrowser2,然后我用Google搜索并找到解决方案,选择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' ”。 onsider将'Embed Interop Types'属性设置为false。

我右键单击此dll并将embed interop更改为false但没有效果。

我评论了var ie = new IE( frm1.WebBrowser1);,所有68个错误都消失了。

1 个答案:

答案 0 :(得分:0)

为什么你想要表格。试试这个:

var ie = new IE();

也可以在配置中为整个应用程序设置ApartmentState。

<configuration>
  <configSections>
    <sectionGroup name="NUnit">
      <section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/>
    </sectionGroup>
  </configSections>

  <NUnit>
    <TestRunner>
      <!-- Valid values are STA,MTA. Others ignored. -->
      <add key="ApartmentState" value="STA" />
    </TestRunner>
  </NUnit>


</configuration>