2014-03-04 7 views
0

Shellexecute은 성공한 경우 32보다 큰 값을 반환합니다. 함수가 실패하면 오류의 원인을 나타내는 오류 값을 반환합니다. 하지만 Process.start의 경우에는 이런 종류의 옵션을 얻지 못했습니다. 나는 Process.ExitCode을 사용해 보았지만 프로세스가 닫힌 후에 만 ​​값을 반환합니다. 하지만 프로세스가 성공적으로 시작되었는지 확인하고 싶습니다. 또한 process.start에서 shellexecute 반환 값과 동일한 것은 무엇입니까?Process.start의 반환 값

+0

Process.Start가 시작되면 부울을 반환하고 여기 MSDN 링크를 참조하십시오. http://msdn.microsoft.com/en-us/library/e8zac0ca.aspx – Baldrick

답변

0

는하지만 난 프로세스가 Process.Start 성공적으로

문서에서 시작됩니다 여부를 확인하려면 : 사실

반환 값은 새로운 프로세스 자원이 시작되었음을 나타냅니다. StartInfo 속성의 FileName 멤버가 지정한 프로세스 리소스가 이미 컴퓨터에서 실행되고 있으면 추가 프로세스 리소스가 시작되지 않습니다. 대신 실행중인 프로세스 리소스가 다시 사용되고 false가 반환됩니다.

부울 값은 오류가 발생했음을 나타내는 것이 아니라 프로세스가 이미 실행 중임을 나타냅니다.

진정한 오류 (예외)가 발생하면 Win32Exception을 붙잡고 NativeErrorCode 속성을 사용하여 오류 코드를 가져올 수 있습니다.

다른 두 가지 예외가 발생할 수 있습니다. InvalidOperationException 또는 ObjectDisposedException 이들 중 어느 것도 문제의 원인을 진단하기위한 오류 코드가 필요하지 않습니다.