Win32 예외 없이 Process.MainModule.FileName 액세스
Process.GetProcessById 메서드를 사용하여 실행 중인 프로세스에 대한 경로를 검색할 때 다음이 발생할 수 있습니다. MainModule.FileName 속성에 액세스하지 못하게 하는 Win32Exception이 발생합니다. 이 예외는 특정 프로세스에서 모듈 정보를 검색하려고 할 때 발생합니다.
해결책:
이 문제를 피하려면 Jeff Mercado가 설명한 방법을 사용할 수 있습니다. 다음 코드는 특정 프로세스의 전체 파일 경로를 얻는 방법을 보여줍니다.
string s = GetMainModuleFilepath(2011);
GetMainModuleFilepath 메서드 구현은 다음과 같습니다.
private string GetMainModuleFilepath(int processId) { string wmiQueryString = "SELECT ProcessId, ExecutablePath FROM Win32_Process WHERE ProcessId = " + processId; using (var searcher = new ManagementObjectSearcher(wmiQueryString)) { using (var results = searcher.Get()) { ManagementObject mo = results.Cast<ManagementObject>().FirstOrDefault(); if (mo != null) { return (string)mo["ExecutablePath"]; } } } return null; }
WMI(Windows Management Instrumentation) 활용 , Win32Exception을 발생시키지 않고 프로세스 정보를 쿼리하고 실행 파일 경로를 추출할 수 있습니다.
위 내용은 Win32Exception 없이 Process.MainModule.FileName에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!