2012-02-27 2 views
-1

나는Process.Start()를 사용하여 CL.exe를 실행하는 방법은 무엇입니까?

using (StreamWriter outfile = new StreamWriter(@"f:\trial.cpp")) 
{ 
    outfile.Write(txtCode.InnerText); 
} 

System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo(@"cl.exe", @" 'trial.cpp'"); 

procStartInfo.RedirectStandardOutput = true; 
procStartInfo.UseShellExecute = false; 
procStartInfo.UserName = "asdasd"; 
SecureString secureString = new SecureString(); 
foreach (char c in "abcded") 
{ 
    secureString.AppendChar(c); 
} 
procStartInfo.Password = secureString; 
// Do not create the black window. 
procStartInfo.CreateNoWindow = true; 
procStartInfo.WorkingDirectory = @"f:\"; 
// Now we create a process, assign its ProcessStartInfo and start it 
System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
proc.StartInfo = procStartInfo; 
proc.Start(); 

// Get the output into a string 
string result = proc.StandardOutput.ReadToEnd(); 

방법 매개 변수로 파일 이름을 전달하는 코드를 다음습니까? 위의 코드는 실행되지 않으며 모든 전체 경로, 다른 경로 옵션을 시도했습니다.

아무도 도와 줄 수 있습니까?

+0

실행되지 않습니까? 오류는 무엇입니까 ?? – vulkanino

+1

"실행하지 않음"을 정의하십시오. ** 무엇이 ** 일어 났으며, 당신이 기대하는 바를 _ 정확히 _ 설명하십시오. – Oded

+0

"실행하지 않음"이란 무엇입니까? 프로세스가 시작되지 않았습니까? 명령 행 매개 변수가 잘못 되었습니까? – ken2k

답변

0

인수가 잘못 설정되었습니다. 너는 :

var procStartInfo = new ProcessStartInfo(@"cl.exe", @" 'trial.cpp'"); 

이름에 공백과 작은 따옴표가있다. 시도 :

var procStartInfo = new ProcessStartInfo(@"cl.exe", @"trial.cpp"); 
+1

이미 'ProcessStartInfo'의 생성자에서 완료되었습니다. – ken2k

+0

@ ken2k - 놓친 것 - 코드를 가로로 스크롤하지 않았습니다. – ChrisF

+0

동일한 결과. 따옴표가있는 파일 경로와 여분의 공백을 제공 할 수 있으므로 구문 분석에 문제가되어서는 안되는 인수의 광고 공간 만 제공하므로 많은 차이를 만들 수 없습니다. – user1235483

0

편집 :

startInfo.CreateNoWindow = false; 
startInfo.UseShellExecute = false; 
startInfo.FileName = "CL.exe"; 
startInfo.WindowStyle = ProcessWindowStyle.Hidden; 
startInfo.Arguments = "trial.cpp"; 

try 
{ 
    using (Process exeProcess = Process.Start(startInfo)) 
    { 
     exeProcess.WaitForExit(); 
    } 
} 
catch 
{ 
    // error handling 
} 

여기서 포인트는 CL 명령 줄 실행 파일이 아닌 윈도우 GUI 응용 프로그램 것입니다. CL.EXE 시스템에없는

http://msdn.microsoft.com/en-us/library/f2ccy3wt.aspx

http://msdn.microsoft.com/en-us/library/kezkeayy.aspx

http://msdn.microsoft.com/en-us/library/9s7c9wdw.aspx

+0

-1 게시 링크 및 요약 또는 솔루션 전혀. – Oded

+0

@Oded 사과드립니다.하지만 Google에서 쉽게 답변을 찾을 수 있습니다. – vulkanino

+0

예. 그리고 당신은 그렇게 논평 할 수있었습니다. – Oded

0

경우 PATH (기본적으로는하지 않은) 한 후 시작 프로세스는 찾을 수 없습니다 실행 파일을 실행할 수 없으며 실행되지 않습니다.

그래서 나는 cl.exe이 시스템 PATH에 없다는 사실을 알고 있다고 생각됩니다.