반응형
C#을 사용하여 실행 중인 Microsoft Edge 브라우저의 타이틀을 가져오려면, System.Diagnostics 네임스페이스의 Process 클래스를 사용할 수 있습니다.
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
// Edge 브라우저 프로세스 이름
string edgeProcessName = "msedge";
// 실행 중인 모든 Edge 프로세스 가져오기
Process[] edgeProcesses = Process.GetProcessesByName(edgeProcessName);
foreach (Process edgeProcess in edgeProcesses)
{
// Edge 브라우저의 타이틀 출력
Console.WriteLine($"Edge 브라우저 타이틀: {edgeProcess.MainWindowTitle}");
}
}
}
위의 코드를 사용하면 브라우져의 타이틀을 취득할수 있습니다.
그리고 특정 타이틀을 가지고 있는 브라우저 프로세스를 종료하려면, Process 클래스를 사용하여 프로세스 목록을 확인하고 원하는 조건에 맞는 프로세스를 종료할 수 있습니다.
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
// 종료할 브라우저의 타이틀
string targetTitle = "샘플";
// Edge 브라우저 프로세스 이름
string edgeProcessName = "msedge";
// 실행 중인 모든 Edge 프로세스 가져오기
Process[] edgeProcesses = Process.GetProcessesByName(edgeProcessName);
foreach (Process edgeProcess in edgeProcesses)
{
// 현재 프로세스의 타이틀과 목표 타이틀 비교
if (edgeProcess.MainWindowTitle.Contains(targetTitle))
{
// 프로세스 종료
edgeProcess.Kill();
Console.WriteLine($"'{targetTitle}' 타이틀을 가진 Edge 브라우저를 종료했습니다.");
}
}
}
}
위의 예제에서는 "샘플" 이라는 타이틀을 가지고있는 EDGE브라우져의 프로세스를 종료하는 내용을 다루고 있습니다.
또한, UI Automation을 사용하여 브라우저의 타이틀을 가져오고 특정 타이틀을 가진 브라우저를 종료하는 좀 더 복잡한 작업도 가능합니다. UI Automation은 사용자 인터페이스와 상호 작용하고 정보를 검색하는 데 사용되는 특수한 API입니다.
먼저, System.Windows.Automation 네임스페이스를 사용하여 UI Automation을 활용할 수 있습니다.
※UIAutomation은, 참조-어셈블리에 있습니다.
아래는 Edge 브라우저의 타이틀을 가져오고, 특정 타이틀을 가진 브라우저를 종료하는 예제 코드입니다.
using System;
using System.Windows.Automation;
class Program
{
static void Main()
{
// Edge 브라우저의 타이틀
string edgeTitle = "Microsoft Edge";
// Edge 브라우저 프로세스를 찾기 위한 AutomationElement
AutomationElement edgeElement = null;
// 모든 프로세스 가져오기
AutomationElementCollection processes = AutomationElement.RootElement.FindAll(TreeScope.Children, Condition.TrueCondition);
foreach (AutomationElement process in processes)
{
// Edge 브라우저 프로세스인지 확인
if (process.Current.Name.Contains(edgeTitle))
{
edgeElement = process;
break;
}
}
if (edgeElement != null)
{
// Edge 브라우저의 타이틀 가져오기
string edgeBrowserTitle = edgeElement.Current.Name;
Console.WriteLine($"Edge 브라우저 타이틀: {edgeBrowserTitle}");
// 특정 타이틀을 가진 브라우저 종료
if (edgeBrowserTitle.Contains("샘플"))
{
edgeElement.SetFocus(); // 포커스 설정 (필요한 경우)
edgeElement.SetFocus(); // 두 번 호출 (필요한 경우)
// Alt + F4를 이용하여 종료
SendKeys.SendWait("%{F4}");
Console.WriteLine("'샘플' 타이틀을 가진 Edge 브라우저를 종료했습니다.");
}
}
else
{
Console.WriteLine("Edge 브라우저를 찾을 수 없습니다.");
}
}
}
이 코드는 AutomationElement를 사용하여 프로세스를 찾고, 해당 프로세스의 타이틀을 가져온 다음, 특정 타이틀을 가진 경우 해당 브라우저를 종료하는 방법을 보여줍니다.
SendKeys를 사용하여 Alt + F4를 보내어 브라우저를 닫을 수 있습니다.
반응형
'C#' 카테고리의 다른 글
C#에서 동기 처리와 비동기 처리로 숫자 배열의 합 계산하기 (0) | 2024.03.16 |
---|---|
C#으로 exe 파일간의 통신을 하는 방법 (0) | 2023.12.22 |
C#으로 REST API Patch하는 방법 (0) | 2023.05.21 |
C#을 이용해서 웹 크롤링하는 방법 (2) | 2023.05.20 |
[C#] 네이버주식을 활용해서 삼성전자 주가 가져오기 (0) | 2023.05.20 |