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 |
ASP.NET_WebBrowser.zip