Visual Studio'da Web Browser ActiveX Hatasını Nasıl Düzeltebilirim?

emkoroglu (327) 11 yıl önce sordu

Microsoft Visual Studio 2012 kullanıyorum. Visual Studio ile Windows Uygulaması geliştiriyorum ve bu uygulamam da Web Browser kontrolünü kullanıyorum. Aşağıdaki kod stabil olarak çalışmaktaydı fakat program çalışmaya devam ederken yaklaşık 1 saat sonra bu hata mesajını verdi.

Unable to get the window handle for the 'WebBrowser' control. Windowless ActiveX controls are not supported.

 System.Windows.Forms.WebBrowser _webBrows = new System.Windows.Forms.WebBrowser(); 

 _webBrows.Navigate("about:blank");                        _webBrows.Document.OpenNew(false);

 _webBrows.Document.Write(urunListHtml[0].ToString());

yukarıdaki kodda dizideki bir web sayfasının source kodlarını _webBrows' un Doucemnt'ine yazdırıyorum ve burada almam gereken verileri alıyorum. Program uzun süre çalıştıktan sonra

 _webBrows.Navigate("about:blank"); _webBrows.Document.OpenNew(false);

kodlarında yukarıdaki hata mesajını vermektedir. Bu sorunu nasıl düzeltebilirim.

Toplam 1 cevap


alattin (17095) 11 yıl önce cevapladı

Emre, benzer bir sorunla karşılaşmıştım.  Sorun DEP - Data Execution Prevention (Veri Yürütme Engellemesi)  kaynaklıydı. DEP Windows 7 gibi işletim sistemlerinde, kullanıcıyı özellikle virüs gibi zararlı yazılımlardan korumak için kullanılan bir teknoloji. ActiveX işlemerinde zaman zaman sorun çıkartabiliyor.

DEP Data Execution Prevention (Veri Yürütme Engellemesi) nasıl kapatılır? linkinde DEP nasıl kapatılır var.  DEP'i kapatıp tekrar deneyebilirsin.
 

Uygulamanda Thread kullanıyorsan, Thread kullanımı ile ilgili hatan da olabilir.

Thread kullanıyorsan 

thread = new Thread (new ThreadStart (function)); 
 thread.SetApartmentState (System.Threading.ApartmentState.STA);

şeklinde kullanmalısın.