상세 컨텐츠

본문 제목

IE 실행 시키기

C#

by 탑~! 2012. 1. 27. 12:14

본문

http://nsinc.tistory.com/48 


IE를 띄우려면 2가지 방법이 있다.
 Process 클래스를 이용한 방법과 System32폴더에 존재하는 SHDocVw.dll을 참조해서 사용하는 것이다.
 
첫째 Process 클래스를 이용한 방법을 알아보자.
 오나전 쉽다. 아래 코드를 보면 이해가 될 것이다.
여기서 Process 클래스의 WaitForExit(); 함수를 호출하면 Modal형태로 띄울 수 있게된다.
 ------------------------------------------------------------------------------------------------------------
         private void button1_Click(object sender, EventArgs e)
         {
             ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
             startInfo.Arguments = "http://www.naver.com";
 
            Process browser = new Process();           
            browser.StartInfo = startInfo;
             browser.Start();
             browser.WaitForExit();           
        }
 ------------------------------------------------------------------------------------------------------------

둘째 SHDocVw.dll를 참조한 방법을 살펴보자.
  1. System32 폴더에서 SHDocVw.dll를 찾아 참조를 한다.
  2. 그리고 아래 샘플 코드를 보면 이해가 될 것이라 생각한다.
  
  - (예1) 브라우저로 창을 띄움
 ------------------------------------------------------------------------------------------------------------
             object vPost, vHeaders, vFlags, vTargetFrame, vUrl;
             string cPostData;
             vFlags = null;
             vTargetFrame = null;
             vUrl = "http://localhost/testpage.asp";
             vHeaders = "Content-Type: application/x-www-form-urlencoded" + Convert.ToChar(10) + Convert.ToChar(13);
             cPostData = "test1=1&test2=2&test3=3";
             vPost = ASCIIEncoding.ASCII.GetBytes(cPostData);
 
            SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer();
             ie.Visible = true;
             ie.Navigate2(ref vUrl, ref vFlags, ref vTargetFrame, ref vPost, ref vHeaders);
 ------------------------------------------------------------------------------------------------------------
  - (예2) 팝업(팝업형태의브라우저)으로 창을 띄움
     a. 빨갛게 되어있는 소스만 틀리므로 그부분을 참고한다.
    b. SHDocVw.IWebBrowserApp 속성은 더 있는데 어떻게 써야할지는 아직 잘 모르겠다~ (모르면 구글링을 해보세요)
 ------------------------------------------------------------------------------------------------------------
             object vPost, vHeaders, vFlags, vTargetFrame, vUrl;
             string cPostData;
             vFlags = null;
             vTargetFrame = null;
             vUrl = "http://localhost/testpage.asp";
             vHeaders = "Content-Type: application/x-www-form-urlencoded" + Convert.ToChar(10) + Convert.ToChar(13);
             cPostData = "test1=1&test2=2&test3=3";
             vPost = ASCIIEncoding.ASCII.GetBytes(cPostData);
 
            SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer();
             SHDocVw.IWebBrowserApp WebBro = (SHDocVw.IWebBrowserApp)ie;
             WebBro.Height = 500;  // 세로 길이
             WebBro.Width = 500;   // 가로 길이
             WebBro.ToolBar = 0;
             WebBro.Visible = true;
             WebBro.Navigate(vUrl.ToString(), ref vFlags, ref vTargetFrame, ref vPost, ref vHeaders);
 ------------------------------------------------------------------------------------------------------------

아무튼 위와 같은 코드를 통해 IE를 띄울 수 있으며
Process에서는 MainWindowHandle 가지고 있고 SHDocVw.InternetExplorer 클래스 또한 HWND라는 속성이 있으므로
각 속성들을 통해 프로세스를 주무를 수 있지 않을까 싶다. (안되면 뭐 말고~)

 

'C#' 카테고리의 다른 글

Monitor size 구하기  (0) 2012.02.03
URL spy  (0) 2012.01.27
원격장비 PORT 열려있는지 확인  (0) 2012.01.04
IP Address Calculations with C# (Subnetmasks, Networks, …)  (0) 2011.12.26
TreeNode 찾기  (0) 2011.12.14

관련글 더보기