2014-06-09 5 views
0

응용 프로그램의 .exe 파일을 호출하여 프로세스를 시작하는 코드를 테스트하고 있습니다.응용 프로그램을 실행할 수 없습니다.

프로그램을 열 때, 나는 다음과 같은 오류가 발생합니다 :

enter image description here

처음 cd 상위 디렉토리에 다음 .EXE를 호출하는 경우 나, 명령 프롬프트 콘솔을 통해 그것을로드 시도 , 그것은 잘 작동합니다. 따라서, 나는 부모 디렉토리로 인한 것 같아요. 나는 다른 무엇을 할 수 -

Process process = new Process(); 
process.StartInfo.WorkingDirectory = "C:\\Test\\"; 
process.StartInfo.FileName = "Test.EXE"; 
process.Start(); 

내가 부모 디렉토리를 설정하는 것 같다 :

이 내 코드?

+0

Exe가 제대로로드 된 경우 EXE를 열었을 때이 메시지가 표시 될 수 있습니다. – Ricky

답변

0

난 그냥 당신이 여기에 게시 정확한 코드를 테스트하고 그것은 여기에 나와 함께 잘 작동 : 유일한이 문제는 다음 링크를 통해 이동

private void button1_Click(object sender, EventArgs e) 
{ 
    Process myProc = new Process(); 
    myProc.StartInfo.WorkingDirectory = "C:\\"; 
    myProc.StartInfo.FileName = "Chat APP.exe"; 
    myProc.Start(); 
} 

그래서 시스템, 개인 정보 보호 설정, 사용 권한 등을 확인하십시오.

1

작업 디렉토리는 이 아니며 실행 파일이있는 디렉토리는이 아닙니다. 실행 파일이 현재 디렉토리로 간주하는 디렉토리입니다.

예 : 모든 콘솔 명령은 Windows 디렉토리 아래에 있지만 작업 디렉토리는 현재 명령 행에서 현재 디렉토리입니다.

코드는 실행 파일의 상대 경로 이름을 사용합니다. 즉, Windows는 Test.exe을 부모 응용 프로그램의 현재 (작동중인) 디렉토리에서 찾습니다.

이 문제를 해결하려면 실행 파일의 전체 경로를 StartInfo.FileName으로 전달하십시오.

+0

실제로 응용 프로그램을로드합니다. 그래서 .exe 파일을 찾은 다음 로딩 화면에 디스크를 찾을 수 없다는 오류 메시지를 표시합니다. 파일 이름에 전체 경로를 추가하려고 시도했지만 동일한 문제가 발생합니다. –

+1

그런 다음 'Test.exe'에 문제가 있습니다. 관련 코드 및 오류 메시지를 게시해야합니다. 로깅을 추가하고'Test.exe'를 디버그하여 실제로 충돌하는 이유와 그 이유를 확인하십시오. –

0
관련 문제