Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用程序进程终止/崩溃时终止子进程_C#_Windows_Process_System.diagnostics_User32 - Fatal编程技术网

C# 应用程序进程终止/崩溃时终止子进程

C# 应用程序进程终止/崩溃时终止子进程,c#,windows,process,system.diagnostics,user32,C#,Windows,Process,System.diagnostics,User32,我正在从我的应用程序创建新进程,希望在应用程序崩溃时/如果应用程序崩溃,这些进程将被终止 所以我找到了这个帖子:。 我使用第一个示例,将所有代码复制到函数public void Close()下的一个新类中 出现错误-名称Win32在当前上下文中不存在,因此我添加了Microsoft.Win32 还有一个错误- CloseHandle无法识别 命名空间“Microsoft.Win32”中不存在类型或命名空间名称“CloseHandle”(是否缺少程序集引用?) 我该如何修复它呢?一种更简单的方法

我正在从我的应用程序创建新进程,希望在应用程序崩溃时/如果应用程序崩溃,这些进程将被终止

所以我找到了这个帖子:。 我使用第一个示例,将所有代码复制到函数
public void Close()
下的一个新类中

出现错误-名称
Win32
在当前上下文中不存在,因此我添加了
Microsoft.Win32
还有一个错误-
CloseHandle
无法识别

命名空间“Microsoft.Win32”中不存在类型或命名空间名称“CloseHandle”(是否缺少程序集引用?


我该如何修复它呢?

一种更简单的方法——或者我相信是这样的

跟踪您启动的所有流程

ArrayList chilProcess_id = new ArrayList();

    public void process_starter()
    {            
        Process p;
        p = new System.Diagnostics.Process();           
        p.StartInfo.FileName = "YOUR PROCESS PATH";
        if (!p.Start())
             chilProcess_id.Add(p.Id);
    }
现在,在退出之前,请终止这些进程

public void exitApplication()
    {
        Process p;
        foreach (int p_id in chilProcess_id)
        {
            p = Process.GetProcessById(p_id);
            try
            {
                if(!p.HasExited)
                    p.Kill();
            }
            catch (Exception e)
            {
                //Handle the exception as you wish
            }
        }
    }
对于ArrayList,添加命名空间

using System.Collections;
using System.Diagnostics;
为进程添加命名空间

using System.Collections;
using System.Diagnostics;
可能重复的