启动外部程序不等待其退出
启动外部程序等待其退出
启动外部程序无限等待其退出
启动外部程序通过事件监视其退出
// using SystemDiagnostics;
private string appName = calcexe;
/// <summary>
/// 启动外部程序不等待其退出
/// </summary>
private void button_Click(object sender EventArgs e)
{
ProcessStart(appName);
MessageBoxShow(StringFormat(外部程序 {} 启动完成! thisappName) thisText
MessageBoxButtonsOK MessageBoxIconInformation);
}
/// <summary>
/// 启动外部程序等待其退出
/// </summary>
private void button_Click(object sender EventArgs e)
{
try
{
Process proc = ProcessStart(appName);
if (proc != null)
{
procWaitForExit();
if (procHasExited) MessageBoxShow(StringFormat(外部程序 {} 已经退出! thisappName) thisText
MessageBoxButtonsOK MessageBoxIconInformation);
else
{
// 如果外部程序没有结束运行则强行终止之
procKill();
MessageBoxShow(StringFormat(外部程序 {} 被强行终止! thisappName) thisText MessageBoxButtonsOK MessageBoxIconExclamation);
}
}
}
catch (ArgumentException ex)
{
MessageBoxShow(exMessage thisText MessageBoxButtonsOK MessageBoxIconError);
}
}
/// <summary>
/// 启动外部程序无限等待其退出
/// </summary>
private void button_Click(object sender EventArgs e)
{
try
{
Process proc = ProcessStart(appName);
if (proc != null)
{
procWaitForExit();
MessageBoxShow(StringFormat(外部程序 {} 已经退出! thisappName) thisText
MessageBoxButtonsOK MessageBoxIconInformation);
}
}
catch (ArgumentException ex)
{
MessageBoxShow(exMessage thisText MessageBoxButtonsOK MessageBoxIconError);
}
}
/// <summary>
/// 启动外部程序通过事件监视其退出
/// </summary>
private void button_Click(object sender EventArgs e)
{
try
{
//启动外部程序
Process proc = ProcessStart(appName);
if (proc != null)
{
//监视进程退出
procEnableRaisingEvents = true;
//指定退出事件方法
procExited += new EventHandler(proc_Exited);
}
}
catch (ArgumentException ex)
{
MessageBoxShow(exMessage thisText MessageBoxButtonsOK MessageBoxIconError);
}
}
/// <summary>
///启动外部程序退出事件
/// </summary>
void proc_Exited(object sender EventArgs e)
{
MessageBoxShow(StringFormat(外部程序 {} 已经退出! thisappName) thisText
MessageBoxButtonsOK MessageBoxIconInformation);