개발꿈나무
[Blazor] xml 파일 Chrome으로 열기(2) - Chrome.exe path 가져와서 열기(Process.GetProcessByName) 본문
[Blazor] xml 파일 Chrome으로 열기(2) - Chrome.exe path 가져와서 열기(Process.GetProcessByName)
HYOKYE0NG 2021. 10. 15. 10:38
[Blazor] xml 파일 Chrome으로 열기 - Process.Start()
[Blazor] 버튼 클릭할 경우 XML 파일 열기(4) - XML data 읽어와 browser에 뿌리기 [Blazor] 버튼 클릭할 경우 XML 파일 열기(3) - XML 파일 data 읽기 [Blazor] 버튼 클릭할 경우 XML 파일 열기(2) - 메모장으로..
hyokye0ng.tistory.com
지난 포스팅에서 xml 파일을 Chrome으로 열어보았다.
Process.Start(filename. argument)에서 filename에 chrome.exe 파일의 path를 full로 적어주거나,
chrome.exe의 경로를 환경변수에 추가해야만 error가 발생하지 않았는데
나는 배포용 프로그램을 만들고 있기 때문에
chrome.exe 파일의 path를 마음대로 지정할 수 없는 노릇이었다.
그래서 찾아낸 방법은 Process.GetProcessesByName()이다.
Process.GetProcessesByName 메서드 (System.Diagnostics)
Process 구성 요소로 이루어진 새 배열을 만들어 지정한 프로세스 이름을 공유하는 모든 기존 프로세스 리소스에 연결합니다.Creates an array of new Process components and associates them with the existing process res
docs.microsoft.com
chrome이라는 이름의 process를 processes에 저장한 후
processes의 filename(경로)를 path라는 변수에 저장하여 실행한다.
여기서 주의할 점은, chrome이 이미 실행중이어야만 chrome이라는 process를 얻을 수 있다.
var processes = Process.GetProcessesByName("Chrome");
var path = processes.FirstOrDefault()?.MainModule?.FileName;
Process.Start(path, xml_path + " --new-window");
최종코드는 다음과 같다.
이 코드의 실행결과는 이전 포스팅의 결과와 같이 xml file이 새 크롬윈도우에서 열린다.
<button class="btn_dcnno" @onclick="(() => XML_Load("12345a"))">Load XML</button>
@code
{
public string xmlrepositoryString { get; set; }
private void XML_Load(string dcn_no)
{
xmlrepositoryString = SysinfoService.GetXMLRepository(); //xml의 folder path 가져옴
string xml_path = @$"{xmlrepositoryString}\{dcn_no}.xml"; //folder path + file name
try
{
var processes = Process.GetProcessesByName("Chrome");
var path = processes.FirstOrDefault()?.MainModule?.FileName;
Process.Start(path, xml_path + " --new-window");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
'C# > Blazor' 카테고리의 다른 글
[Blazor] server에 있는 파일 다운로드 받기 - BlazorDownloadFile (1) | 2021.10.22 |
---|---|
[Blazor] NuGet Package 설치하기 (0) | 2021.10.21 |
[Blazor] xml 파일 Chrome으로 열기 - Process.Start() (0) | 2021.10.15 |
[Blazor] 버튼 클릭할 경우 XML 파일 열기(4) - XML data 읽어와 browser에 뿌리기 (0) | 2021.10.14 |
[Blazor] 버튼 클릭할 경우 XML 파일 열기(3) - XML 파일 data 읽어 console에 출력하기 (0) | 2021.10.14 |