C# -- IE automation #1 -- 시작하기
C# -- IE (Internet Explorer) automation #1 -- 시작하기
환경 : windows 7 64bit, visual studio 2013 community
참고 : http://stackoverflow.com/a/20845383
https://msdn.microsoft.com/en-us/library/aa752084(v=vs.85).aspx
http://blog.clockahead.com/search/label/IE ---> IE 자동제어 관련 글들 (일본어이므로 한글번역하여 보자.)
<< 미션 >>
IE (internet explorer) 를 2개 실행시키고, 각각 구글과 네이버로 이동한후, 5초후 IE 종료하자
1. Console 프로젝트를 만들자.
2. Internet Explorer 실행하기위해 Microsoft Internet Controls (SHDocVw) type library 를 References 에 추가해야한다.
3. References에 SHDocVw 추가됨.
4. SHDocVw 를 이용하여 InternetExplorer 인스턴스 만드는 예제.
--> 5초후 종료 시간에 네이버가 연결 안되고 종료되면, 10초로 늘리면 됨 !!!
** Navigate vs Navigate2
Navigate -- 첫번째 URL 매개변수 type == String
Navigate2 -- 첫번째 URL 매개변수 type == object 또는 dynamic
** COM 의 Variant 타입은 object 로 사용한다. c# 4.0 부터는 dynamic 으로 사용 가능.
<< 코드 >>
using System; | |
using System.Threading.Tasks; | |
namespace IEtest1 | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer(); | |
SHDocVw.InternetExplorer IE2 = new SHDocVw.InternetExplorer(); | |
object Empty = 0; | |
object URL = "http://www.google.com"; // object 혹은 dynamic type | |
IE.Visible = true; | |
IE.Navigate2(ref URL, ref Empty, ref Empty, ref Empty, ref Empty); | |
// IE.Navigate2(ref URL); // 이렇게해도 됨. | |
System.Threading.Thread.Sleep(3000); // 3초후 새로운 IE 창 연다. | |
String url2 = "http://www.naver.com"; // String type | |
IE2.Visible = true; | |
IE2.Navigate(url2, ref Empty, ref Empty, ref Empty, ref Empty); | |
// IE2.Navigate(url2); // 이렇게해도 됨. | |
System.Threading.Thread.Sleep(5000); // 5초후 종료 --> 필요하면 10초로 늘려라!! | |
IE.Quit(); // IE 종료 | |
IE2.Quit(); | |
} | |
} | |
} |