我正在开发一个Winform应用程序。点击按钮我需要启动一个新的第三方exe。为此,我使用以下代码:
private void btnUserMgmt_Click(object sender, EventArgs e)
{
if (!IsAlreadyRunning())
{
System.Diagnostics.Process proc = new System.Diagnostics.Process
{
StartInfo = new System.Diagnostics.ProcessStartInfo
{
FileName = strAppPath + "ReveaLINXUserMgmt/ReveaLINXUserMgmt.exe",
Arguments = "192.168.0.121\\TESTDBSERVER",
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true,
}
};
proc.Start();
}
}
private bool IsAlreadyRunning()
{
var processExists = System.Diagnostics.Process.GetProcesses().Any(p => p.ProcessName.Contains("ReveaLINXUserMgmt"));
return processExists;
}
现在它正好在主应用程序窗口的顶部启动并运行。
我需要再次点击btnUserMgmt
按钮。如果ReveaLINXUserMgmt.exe已经在运行且处于最小化状态,它将出现在窗口之上。
如果用户关闭主应用程序,则子exe也将被关闭