2017-10-28 2 views
-2

filename.exe 확장자로만 알려진 button_click 이벤트에서 process.exe를 열어야합니다.
가능합니까? 두 단어로 game.exe 라이브러리를 만들어야하고 filename.exe 프로세스가 발견되면 filename.exe, 을 시작해야합니다. 저는 costumer에게 프로그램 위치의 전체 경로를 묻지 않기를 원하며, 찾아보기에 OpenFileDialog()을 사용하고 싶지 않습니다. 3 일간 여기에 갇혔다. 따라서C# 위치 경로가 모르는 프로세스 열기

filename.exe=textbox1.text 
SystemDiagnostic.Process(..).Start(filename.exe) 

파일과 디버그 프로그램이 동일한 디렉토리에있는 경우이 파일 만 열립니다.

재귀 적 검색이 필요하고 파일이 발견되면 어떻게 처리합니까? @"C:\에서 filename.exe을 어떻게 검색합니까?

감사합니다. 불량 영어로 죄송합니다. 그것을 위해 설치 프로그램을 만들기 위해 당신에게 달려처럼 해당 파일이 귀하가 배포 된 경우

+0

해당 파일이 귀하 또는 다른 공급 업체가 배포 했습니까? C : 볼륨에 있다고 가정 할 수도 없습니다. – kennyzx

+0

다른 공급 업체입니다. 고맙습니다. – user8847930

답변

0

, 당신은 PATH 환경 변수에 해당 파일의 포함 디렉토리를 추가 할 수 있습니다, 당신은 단순히

하여 실행할 수 있습니다
Process.Start(“filename.exe”) 

해당 파일의 전체 경로를 지정하지 않아도됩니다.

컨트롤에서 벗어 났지만 해당 파일의 위치에 대한 흔적이있는 경우 (예 : 알려진 공급 업체의 파일이며 기본 위치에 파일이 있거나 InstallLocation 같은 것이있는 경우) 그 파일에 대한 레지스트리를 찾으면 전체 경로를 얻고 레지스트리를 쿼리하여 시작할 수 있습니다.

마지막 수단은 전체 디스크에서 해당 파일을 검색합니다. 그러나 이것은 너무 나쁘고, 신뢰할 수없고, 천천히 ... 일이 쉽게 잘못 될 수 있습니다. 이 접근법에 대해 강력하게 경고합니다.

마지막 접근 방법을 선택해야하는 경우 this post이 유용 할 수 있습니다. 잘못된 파일을 호출 할 경우 해당 이름이있는 경우 버전 번호, 게시자 등의 다른 속성을 확인하십시오.