关闭主应用程序之前关闭外部应用程序

时间:2014-12-01 05:01:18

标签: c# winforms sccm

我正在开发一个用于应用程序的c#winforms的插件编写。 我在调试中设置了一个启动操作。我已设置启动外部程序,它正在启动该应用程序。 在我的winforms中,我编写了一个按钮点击事件的代码,该事件开始一个新的过程,如 notepad.exe

现在问题是每当我关闭该外部应用程序时,应该自动关闭从此按钮单击事件调用的所有打开的记事本。

任何帮助都可以表示赞赏。

2 个答案:

答案 0 :(得分:1)

您可以使用System.Diagnostics.Process启动进程,如下所示:

Process proc=Process.Start("notepad.exe");

在Closing事件中,您可以使用:

proc.Kill;

此外,您只能存储流程的ID:

//arr is int array where stored your processes ids
for(int i=0; i<arr.Length; i++)
{
    Process.GetProcessById(arr[i]).Kill();
}

答案 1 :(得分:1)

在此示例中,我关闭计算器时关闭记事本:

    private void Form1_Load(object sender, EventArgs e)
    {
        foreach (Process p in Process.GetProcessesByName("calc"))
        {
            p.EnableRaisingEvents = true;
            p.Exited += p_Exited;
        }
    }

    void p_Exited(object sender, EventArgs e)
    {
        foreach (Process p in Process.GetProcessesByName("notepad"))
        {
            p.CloseMainWindow();
        }
    }