.NET에서 실행 중인 다른 프로그램 명령줄 매개변수를 확인할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/44260

  •  09-06-2019
  •  | 
  •  

문제

우리 앱의 다양한 인스턴스가 어떻게 실행되었는지 확인하려는 흥미로운 사례가 있습니다..NET에서 실행 중인 다른 인스턴스를 쿼리하고 해당 인스턴스에 전달된 명령줄 매개 변수를 가져올 수 있는 방법이 있습니까?지금까지 .NET에서 이를 수행할 수 있는 방법을 찾을 수 없었기 때문에 이전에 누군가가 이와 같은 작업을 수행했는지 확인하기 위해 여기에서 확인해야 한다고 생각했습니다.

도움이 되었습니까?

해결책

이 정보는 WMI를 통해 검색할 수 있습니다.

참조 Win32_Process 클래스, 특히 명령줄 속성입니다.이것 코드 프로젝트 기사 이를 수행하는 방법에 대한 지침을 제공합니다.

다른 팁

일반적으로 이러한 변수는 (이론적으로) 접근할 수 없는 프로그램의 메모리 공간에 저장됩니다.

다른 인스턴스 및 거래 데이터와의 프로세스 간 통신을 시작하는 방법을 찾아야 합니다.명명된 파이프는 좋은 옵션 중 하나이지만 이에 대한 좋은 옵션을 얻으려면 새로운 스택오버플로 질문을 시작하는 것이 좋습니다.

-아담

나중에 참조할 수 있도록 작동 방법에 대한 코드 조각이 있습니다.이것은 단지 그것이 어떻게 작동하는지 알아보기 위한 테스트였습니다.실제 구현된 코드는 필요한 명령줄 매개변수를 구문 분석합니다.

try
{
   ManagementScope connectScope = new ManagementScope();
   connectScope.Path = new ManagementPath(@"\\" + Environment.MachineName + @"\root\CIMV2");

   SelectQuery msQuery = new SelectQuery("SELECT * FROM Win32_Process Where Name = '" + "PROGRAMNAMEHERE.exe" + "'");
   ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(connectScope, msQuery);

   foreach (ManagementObject item in searchProcedure.Get())
   {
      try 
      {
         MessageBox.Show(item["CommandLine"].ToString()); 
      }
      catch (SystemException) 
      {}
   }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top