알려진 프로세스에서 사용하는 파일의 절대 경로를 명령 줄을 통해 확인하고자합니다. 현재 프로세스는 구성 파일과 같은 다양한 파일을 가리키는 명령 줄에서 상대 경로로 시작됩니다. 문제는 경로가 실행 파일이 들어있는 폴더와 관련이없는 경우 커맨드 라인에서 제공되는 상대 경로를 변환 할 방법이 없다는 것입니다. 물론 100 % 확신 할 수 없습니다. 예를 들어 두 개의 배치 파일 용C# 다른 프로세스의 작업 디렉토리 가져 오기
:
BATCH 1 CD C : \ 테스트 \ 빈 TEST.EXE ... \ 구성 \ config.ini를
BATCH 2 CD의 C : \ 테스트 빈 \ test.exe config \ config.ini
배치 파일 하나의 경우 얻을 수있는 명령 줄은 "c : \ test \ bin \ test.exe .. \ config \ config.ini"이고 배치 파일 2의 경우 "c : \ test \ bin \ test.exe config \ config.ini"를 얻으십시오. 그래서,이 경로를 해결할 수 없습니다.
어쨌든 우선, ManagementObjectSearcher를 사용하여 WMI 쿼리에서 명령 줄을 얻었습니다. 이제 커맨드 라인에서 전달 된 경로를 해결하기 위해 프로세스가 시작된 작업 디렉토리를 얻지 않으면 안되지만 어떻게해야합니까?
편집 : 키 정보 하나를 잊어 버렸습니다. 다른 프로세스의 작업 디렉토리를 가져오고 싶습니다. 기본적으로 내 메인 프로그램은 다른 프로그램에서 정보를 수집합니다. 실행 파일의 이름을 알고 있기 때문에 프로세스 ID를 확인할 수 있습니다. 명령 줄을 결정할 수도 있습니다. 실행 파일이 시작된 현재 작업 디렉토리 나 현재 디렉토리를 찾아야 만하므로 명령 행의 상대 경로를 확인할 수 있습니다. 나는 그 질문을 분명하게하기를 희망한다.
에서 검색 할 수있는 다양한 경로가있다. "프로세스 작업 디렉토리 가져 오기"는 작업 디렉토리에 대한 질문입니다.이 디렉토리는 실행 중에 변경 될 수 있지만 질문 자체는 실행 파일이 시작된 디렉토리를 묻는 것으로 보입니다. 이는 상당히 다를 수 있습니다. 프로세스 실행). @ chris166의 답변은 질문의 제목을 다루지 만, 제 대답은 질문 자체 인 IMHO를 해결합니다. 아마도 그 혼란을 분명히 할 수 있을까요? – Cyberherbalist