WPF 상에서 IE를 기동한뒤에
화면이 종료되면, 기동했던 IE 페이지도 타이틀에 따라서 따로 종료해야하는 상황이 발생했다.
어떻게 제어를 해야하나...
[조건]
웹브라우져는 IE로 한정된다.
화면이 종료되는 시점에서 브라우져를 같이 종료해야한다.
종료시켜야하는 브라우져의 타이틀은 가변적이다.
예) "우리나라 만세 [회원아이디]"
[진행]
우선, 참조설정 COM에서 아래를 추가한다.
Microsoft Internet Controls
Microsoft Shell Controls And Automation
그리고 Using 을 추가한다.
using SHDocVw;
using Shell32;
마지막으로 소스를 아래와같이 구현해보았더니, 아주 잘 작동된다.
/// <summary> /// IE기동 (타이틀취득) /// </summary> protected void IECloseControlExecute() { Shell shell = new Shell(); IShellWindows windows = (SHDocVw.IShellWindows)shell.Windows(); // 아래의 키가 포함되어있으면 브라우져를 종료한다. string targetKey = "우리나라 만세"; SHDocVw.InternetExplorer ie; foreach (object window in windows) { ie = window as SHDocVw.InternetExplorer; if (ie != null && string.Equals(System.IO.Path.GetFileName(ie.FullName), "iexplore.exe", StringComparison.CurrentCultureIgnoreCase)) { if(ie.LocationName.IndexOf(targetKey) > -1) { ie.Quit(); } } } } |
물론, WPF(C#) 을 베이스로 활용하였지만
소스자체는 C#이라 윈도우 기반에서도 활용 가능할것으로 보인다.
'WPF' 카테고리의 다른 글
WPF C# 을 자동테스트하는 방법에대해 알아봅시다 (0) | 2023.05.20 |
---|---|
WPF에서 OAuth2.0 인증을 사용하는 방법 (0) | 2023.05.03 |
WPF에서 WebView2를 사용하는 방법 (0) | 2023.05.03 |
TextBox 의 Enabled 설정시 배경색 지정문제 (0) | 2016.05.12 |
UserControl 과 Dependency 확장 (0) | 2016.05.12 |