[C#] 확장형 브라우져 컨트롤 AxWebBrowser Extended Browser control(확장형 webbrowser)


Development note/C#  2012. 10. 22. 18:16

안녕하세요 명월입니다.


이번 포스팅에 소개 할 라이브러리는 Window From Control에서 사용되는 확장형 Webbrowser 컨트롤입니다. 기본적으로 window Form을 만들면 기본적인 Webbrowser Control이 있숩니다.

 

위 웹브라우져는 간단한 브라우징을 하거나 스크래핑을 하기에는 충분한 데 복잡한 스크래핑을 할때는 제공되는 API가 부족합니다.

 

그래서 Com 속성을 보면 확장형 브라우져 AxWebBrowser Extended Browser가 있는데 더 많은 API를 사용할 수 있습니다.그럼 사용법을 확인하겠습니다.

이걸 디자인 화면에서 컨트롤을 드래그하면 코드가 자동으로 생성됩니다.

여기서 다루어 볼 것은 기본적인 Webbrowser와 다른 것은 팝업창 제어입니다.

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace Blog20121022
{
  class Program : Form
  {
    private AxSHDocVw.AxWebBrowser axWebBrowser1;
    [STAThread]
    static void Main(string[] args)
    {
      Program p = new Program();
      Application.Run(p);
    }
    public Program()
    {
      this.Text = "명월 브라우져";
      InitializeComponent();
      this.Load += new EventHandler(Program_Load);
      axWebBrowser1.NewWindow2 += new AxSHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(axWebBrowser1_NewWindow2);
    }
    void Program_Load(object sender, EventArgs e)
    {
      axWebBrowser1.Navigate("www.naver.com");
    }
    void axWebBrowser1_NewWindow2(object sender, AxSHDocVw.DWebBrowserEvents2_NewWindow2Event e)
    {
      Program p = new Program();
      p.Show();
      e.ppDisp = p.axWebBrowser1.Application;
    }
    private void InitializeComponent()
    {
      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Program));
      this.axWebBrowser1 = new AxSHDocVw.AxWebBrowser();
      ((System.ComponentModel.ISupportInitialize)(this.axWebBrowser1)).BeginInit();
      this.SuspendLayout();
      // 
      // axWebBrowser1
      // 
      this.axWebBrowser1.Enabled = true;
      this.axWebBrowser1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axWebBrowser1.OcxState")));
      this.axWebBrowser1.Dock = DockStyle.Fill;
      // 
      // Program
      // 
      this.ClientSize = new System.Drawing.Size(292, 266);
      this.Controls.Add(this.axWebBrowser1);
      this.Name = "Program";
      ((System.ComponentModel.ISupportInitialize)(this.axWebBrowser1)).EndInit();
      this.ResumeLayout(false);
    }
  }
}

 

참고 파일 : Blog20121022.zip