Process.MainModule.FileName에 액세스할 때 Win32Exception 해결
Process.MainModule.FileName을 통해 실행 중인 프로세스의 파일 경로를 검색하려고 할 때 , 일부 프로세스에서는 불가능으로 인해 Win32Exception이 발생할 수 있습니다. 프로세스 모듈을 나열합니다. 이 문제를 해결하기 위해 Jeff Mercado는 대체 방법을 제공했습니다.
적용된 C# 코드:
string s = GetMainModuleFilepath(2011);
전체 기능 구현:
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; }
이 접근 방식은 Windows WMI(Management Instrumentation)는 특정 프로세스를 쿼리하고 해당 프로세스 모듈에 액세스하지 않고도 실행 가능한 경로를 검색합니다. Process.MainModule.FileName 속성에 직접 액세스할 때 발생하는 오류를 방지합니다.
위 내용은 프로세스의 실행 파일 경로를 가져올 때 Win32Exception을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!