2017-03-06 20 views
0

내 winform 응용 프로그램에서 웹 브라우저 컨트롤로 Awesomium을 사용하고 있습니다.
단추의 클릭 이벤트에서 종료하고 싶습니다. & ReInitialize WebCore.
어떻게하면됩니까?
나는이 코드를 썼다,하지만 난 오류가 아래에있어 : ​​Awesomium 웹 브라우저 - WebCore.Shutdown 및 WebCore.Initialize 다시 방법

코드 : 여기

webBrowser_main.Dispose(); <------> I want to remove this previous awesomium control & recreate it again with same ID 
WebCore.Shutdown(); 

await dl(5000, 7000); 

WebConfig config = new WebConfig() { UserAgent = "blablabla", LogLevel = LogLevel.None }; 
WebCore.Initialize(config); <------> I HAVE ERROR HERE 
WebCore.Initialized += WebCoreInitialzed; 
WebCore.Download += WebCoreDownload; 

WebControl browser = new WebControl(); 
browser.Name = "webBrowser_main"; 
browser.BackColor = System.Drawing.Color.GreenYellow; 
browser.Location = new System.Drawing.Point(12, 29); 
browser.Size = new System.Drawing.Size(960, 565); 
browser.TabIndex = 52; 
browser.ViewType = Awesomium.Core.WebViewType.Offscreen; 
browser.ShowJavascriptDialog += new Awesomium.Core.JavascriptDialogEventHandler(webBrowser_main_ShowJavascriptDialog); 
browser.TargetURLChanged += new Awesomium.Core.UrlEventHandler(webBrowser_main_TargetURLChanged); 
browser.ShowCreatedWebView += new Awesomium.Core.ShowCreatedWebViewEventHandler(webBrowser_main_ShowCreatedWebView); 
browser.DocumentReady += new Awesomium.Core.DocumentReadyEventHandler(webBrowser_main_DocumentReady); 
browser.LoadingFrame += new Awesomium.Core.LoadingFrameEventHandler(webBrowser_main_LoadingFrame); 
browser.LoadingFrameComplete += new Awesomium.Core.FrameEventHandler(webBrowser_main_LoadingFrameComplete); 
browser.MouseMove += new System.Windows.Forms.MouseEventHandler(webBrowser_main_MouseMove); 
browser.Source = new System.Uri("https://www.google.com", System.UriKind.Absolute); 
browser.TabIndex = 0; 
this.Controls.Add(browser); 

그리고 오류입니다 :

유형의 예외를 '시스템. InvalidOperationException '이 (가) 에서 발생했지만 사용자 코드에서 처리되지 않았습니다.

추가 정보 : WebCore를 다시 초기화하려고합니다. WebCore는 프로세스 당 한 번만 초기화해야하고 은 프로세스가 종료 될 때만 종료해야합니다.

+0

오류 메시지가 매우 명확합니다. – Evk

답변

0

현재 Chromium은 Shutdown() 메서드가 호출 된 후 "재 초기화"를 지원하지 않습니다. 따라서 라이브러리 (Awesomium, CEF 등)를 기반으로하는 라이브러리는 이러한 기능을 지원하지 않습니다.

이 기능이 필요한 이유에 따라 다른 방법을 시도해 볼 수 있습니다 (예 : 캐시 지우기, 쿠키).

+0

Awesomium보다 어떤 라이브러리가 더 좋습니까? – MoonLight

+0

정말 귀하의 필요에 따라 다릅니다. Awesomium은 최고이지만 상업적인 개발을 위해 무료는 아닙니다. 표준 WebBrowser 구성 요소를 사용하는 것이 더 쉽습니다. – MonarchL