WebBrowser 컨트롤은 윈도우폼 애플리케이션에 사용됩니다. WebBrowser컨트롤은 HTML 요소를 이용하여 내용을 액세스하고, 데이터 프로세스, 많은 프로퍼티와 메소드를 추적할 수 있는 많은 이벤트들을 제공합니다.
예를 들어, 구글 로그인 버튼에 클릭 이벤트를 강제로 발생시킬수도 있고, 구글계정을 입력하지 않고, 자동로그인을 할 수도 있습니다.
WebBrowser 컨트롤은 System.Windows.Forms에 상속되어있습니다.
그냥 ASP.NET에서 System.Windows.Forms 참조를 추가하고 WebBrowser 객체를 쓰려고 하면 에러가 발생합니다.
이제 이 에러를 해결해봅시다.
우선. [ASP.NET 웹 응용 프로그램] 프로젝트를 하나 생성합니다.
그리고, [클래스]를 추가합니다.
참조에 [System.Windows.Forms]도 추가해줍니다.
IEBrowser.cs
using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Threading; using System.Windows.Forms; namespace ASP.NET_WebBrowser { public class IEBrowser: System.Windows.Forms.ApplicationContext { WebBrowser ieBrowser; Form form; Thread thrd; public IEBrowser() { thrd = new Thread(new ThreadStart( delegate { Init(); System.Windows.Forms.Application.Run(this); })); // set thread to STA state before starting thrd.SetApartmentState(ApartmentState.STA); thrd.Start(); } private void Init() { // create a WebBrowser control ieBrowser = new WebBrowser(); // WebBrowser EnventHandler //ieBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(IEBrowser_DocumentCompleted); //ieBrowser.Navigating += new WebBrowserNavigatingEventHandler(IEBrowser_Navigating); form = new System.Windows.Forms.Form(); ieBrowser.Dock = System.Windows.Forms.DockStyle.Fill; form.Controls.Add(ieBrowser); form.Visible = true; ieBrowser.Navigate("http://naver.com"); } protected override void Dispose(bool disposing) { if (thrd != null) { thrd.Abort(); thrd = null; return; } System.Runtime.InteropServices.Marshal.Release(ieBrowser.Handle); ieBrowser.Dispose(); if (form != null) form.Dispose(); base.Dispose(disposing); } // 인터넷의 로딩이 완료되면 창이 닫힘. void IEBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { this.Dispose(true); } } }
클래스를 생성자에서 쓰레드를 설정한 후 윈폼에서 WebBrowser 컨트롤을 사용하시듯 사용하시면 됩니다.
예제 소스 다운받아서 확인하세요.
VS2008, Win7
브라우저를 실행시키면 바로 WebBrowser가 실행됩니다.
참고 - 코드프로젝트
'프로그래밍 > .NET' 카테고리의 다른 글
[C#]ThreadPool (0) | 2013.02.05 |
---|---|
[C#]AutoResetEvent, ManualResetEvent (0) | 2013.02.05 |
[C#] MySQL 사용 (0) | 2013.01.29 |
[C#] HTTP/HTTPS 송수신 (HttpWebRequest/HttpWebResponse) (2) | 2013.01.18 |
현재 포커스 컨트롤러 찾기 (0) | 2012.12.27 |