2010-11-23 13 views
9

Olası Çoğalt sona erdiğinde çıkış kodu almak için:
How to start a process from C#?Nasıl C# bir dış yürütülebilir başlatmak ve süreç

Ben komut satırında çalışan bir dış yürütülebilir başlatmak istiyor biraz görev yapmak. Tamamlandıktan sonra, döndürdüğü hata kodunu kontrol etmek istiyorum. Nasıl yapabilirim?

+2

@John, bu diğer soru çıkış kodu hakkında sormak, ne cevapların hiçbirinde geri almak için nasıl göstermek yapmaz çünkü yinelenen etmez. –

+0

Kuşkusuz, bir uygulamanın başlatılması tekrar tekrar ele alındı, geri dönüş değerinin yakalanması sık sık kaplanmıyor. Bunu "BLATANT DUPLICATE" olarak sınıflandırmayacağım. –

+0

@Brad: asıl soru başlığı "harici bir exxcutable sorusu başlattı". Çıkış kodu, bunun en önemsiz kısmıdır. –

cevap

16

bu deneyin:

public virtual bool Install(string InstallApp, string InstallArgs) 
    { 
     System.Diagnostics.Process installProcess = new System.Diagnostics.Process(); 
     //settings up parameters for the install process 
     installProcess.StartInfo.FileName = InstallApp; 
     installProcess.StartInfo.Arguments = InstallArgs; 

     installProcess.Start(); 

     installProcess.WaitForExit(); 
     // Check for sucessful completion 
     return (installProcess.ExitCode == 0) ? true : false; 
    } 
1

Process.Start() yöntemini kullanabilirsiniz.

Nasıl yapmak istediğinize bağlı olarak işlemeyi başlatmak için hem örnek hem de statik yöntemler vardır.

MSDN belgelerini here görüntüleyebilirsiniz. C# 'den başlatılan harici bir işlemi manipüle etmek ve izlemek için ihtiyacınız olan her şeyi açıklayacaktır.

0

İşlem sınıfını 'Statik yöntemi başlat' komutunu kullanabilirsiniz. Örneğin, internet explorer minimize başlatmak ve www.example.com yollamak istiyorlar: Aksi,

ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe", "www.example.com"); 
startInfo.WindowStyle = ProcessWindowStyle.Minimized; 
Process.Start(startInfo); 

dönüş değeri ile ilgili olarak, operasyon başarılı olursa, yöntem true döndürür, bir Win32Exception olacak kaldırdı. Belirli bir hatayla ilişkili Win32 hata kodunu almak için bu sınıfın NativeErrorCode üyesini kontrol edebilirsiniz.

9
 Process process = new Process(); 
     process.StartInfo.FileName = "[program name here]"; 
     process.StartInfo.Arguments = "[arguments here]"; 
     process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized; 
     process.Start(); 
     process.WaitForExit(); 
     int code = process.ExitCode; 
İlgili konular