[TIP][C#] Reflection을 이용하여 인터넷 익스플로러 실행하기
-
2012년 5월 10일 목요일 오전 6:46
[C#] Reflection을 이용하여 인터넷 익스플로러 실행하기
- 편집됨 devlife 2012년 5월 10일 목요일 오전 6:47 TIP
모든 응답
-
2012년 5월 10일 목요일 오전 6:47
안녕하세요.
이번 강좌는 Reflection을 이용한 Internet Explorer 실행하기 입니다.
개발을 하시다 보면은 필요에 의해서 인터넷 익스플로러를 실행을 하시는 경우가 생기게 됩니다.기존에 C# 코드를 이용한 Reflection을 활용하는 법을 알아보겠습니다.
일단 IE Com을 ProgID를 얻어오는 구문과 IE에 해당하는 메소드 및 프로퍼티에 대한 값을 넣어주는 부분이
되겠습니다.
이 부분만 보시면 금방 이해되실 겁니다.StringBuilder query = new StringBuilder("http://www.google.com"); string u = query.ToString(); object urls = u; System.Type oType = System.Type.GetTypeFromProgID("InternetExplorer.Application"); object o = System.Activator.CreateInstance(oType); o.GetType().InvokeMember("menubar", System.Reflection.BindingFlags.SetProperty, null, o, new object[]{ 0 }); o.GetType().InvokeMember("toolbar", System.Reflection.BindingFlags.SetProperty, null, o, new object[]{ 0 }); o.GetType().InvokeMember("statusBar", System.Reflection.BindingFlags.SetProperty, null, o, new object[] { 0 }); o.GetType().InvokeMember("addressbar", System.Reflection.BindingFlags.SetProperty, null, o, new object[]{ 0 }); o.GetType().InvokeMember("width", System.Reflection.BindingFlags.SetProperty, null, o, new object[] { 570 }); o.GetType().InvokeMember("height", System.Reflection.BindingFlags.SetProperty, null, o, new object[] { 590 }); o.GetType().InvokeMember("Resizable", System.Reflection.BindingFlags.SetProperty, null, o, new object[] { false }); o.GetType().InvokeMember("Visible", System.Reflection.BindingFlags.SetProperty, null, o, new object[] { true }); o.GetType().InvokeMember("Navigate", System.Reflection.BindingFlags.InvokeMethod, null, o, new object[]{ urls });음.. 프로그램에서 IE에 대해서 창만 보이고 싶거나 혹은 툴바, 주소창 등을 제어하고 싶으시면 위 방법처럼
사용하시면 됩니다.
일단 Reflection을 이용한 프로그램은 많은 부분을 알고 계셔야 합니다만, 지금은 IE를 활용하는 부분에
대해서 간단한 소스를 직접 만들었습니다^^
참..그리고 XP에서는 문제가 없는데요.. 비스타의 경우 UAC가 켜져있는 경우에는 Visual Studio를 관리자
권한으로 실행하지 않았을 경우에는 똑같은 창 하나가 빈 페이지 상태로 뜨게 됩니다 그리고 나서 본래의
페이지가 뜨게 되는데요..
이유는 IE가 관리자 권한이 없을 때 임시권한으로 IE를 실행하고 그 창에서 다시 본래의 의도한 창이 뜨게 됩니다.
따라서, 관리자 권한으로 Visual Studio를 실행해서 개발하시거나, UAC를 끄시거나 스크립트를 이용한
권한을 부여받아야 합니다.- 답변으로 표시됨 devlife 2012년 5월 10일 목요일 오전 6:47

