C# 執行一個程式並且等待其退出
//獲取一個已中斷程序的退出程式碼,非零表示成功,零表示失敗。
//引數hProcess,想獲取退出程式碼的一個程序的控制代碼,引數lpExitCode,用於裝載程序退出程式碼的一個長整數變數。
[DllImport("Kernel32.dll")]
static extern bool GetExitCodeProcess(System.IntPtr hProcess, ref uint lpExitCode);
#endregion
static public bool RunAndWait(string argm,bool IsShow)
{
STARTUPINFO sInfo = new STARTUPINFO();
PROCESS_INFORMATION pInfo = new PROCESS_INFORMATION();
if (!CreateProcess(null, new StringBuilder(argm), null, null, false, 0, null, null, ref sInfo, ref pInfo))
{
throw new Exception("呼叫失敗");
}
uint i = 0;
WaitForSingleObject(pInfo.hProcess, int.MaxValue);
GetExitCodeProcess(pInfo.hProcess, ref i);
CloseHandle(pInfo.hProcess);
CloseHandle(pInfo.hThread);
return false;
}
private Process proc = null;