Ошибка при использовании interop.Shdocvw

Я пытался подключиться к элементу управления веб-браузером, но постоянно возникало исключение, что iwebbrowser2 должен реализовывать iwebbrowser2 как-то так, затем я гуглил и нашел решение этой проблемы, затем выбрал com-объекты, затем оттуда веб-браузер Microsoft после выбора, что я получил элемент управления для применения в форме и я сделал.

следующий написанный код

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

Невозможно внедрить тип взаимодействия "SHDocVw.tagREADYSTATE", обнаруженный в обеих сборках "e:\XMLreader\lib\Interop.SHDocVw.dll" и "e:\XMLreader\XMLreader\obj\x86\Debug\Interop.SHDocVw.dll". onsider, установив для свойства 'Embed Interop Types' значение false.

Я щелкнул правой кнопкой мыши на этом dll и изменил interop interop на false, но безрезультатно.

Я закомментировал var ie = new IE( frm1.WebBrowser1);и все 68 ошибок исчезли.

1 ответ

Решение

Зачем вам вообще нужна форма? Попробуй это:

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>
Другие вопросы по тегам