Ошибка при использовании 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 и изменил встроенное взаимодействие на false, но безрезультатно.

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


person Afnan Bashir    schedule 23.12.2010    source источник


Ответы (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>
person dove    schedule 24.12.2010