使用C#关闭在另一个用户配置文件下运行的程序

时间:2018-09-25 09:58:45

标签: c#

我制作了一个打开COM6的程序。该程序在用户登录时启动。 如果另一个用户登录,而第一个用户仍在登录,则该程序会发疯,因为COM已打开。 我找到了这段代码,我认为它可以解决问题。该代码旨在关闭具有相同名称的所有其他应用程序,但是显然,当另一个应用程序在另一个用户下运行时,该代码不起作用。有人对此有解决方案吗?

void CloseAllButMe()
    {
        Process[] processes;
        Process self = Process.GetCurrentProcess();
        processes = Process.GetProcessesByName(self.ProcessName);
        foreach (Process p in processes)
        {
            if (self.Id != p.Id) p.CloseMainWindow();
        }


    }

1 个答案:

答案 0 :(得分:0)

您可以使用方法Process.Kill停止进程。致电Kill将立即停止该过程,并可能导致工作损失。

这是一个杀死计算器的代码示例:

public static void KillPaint()
{
    System.Diagnostics.Process[] procs = null;

    try
    {
        procs = Process.GetProcessesByName("calc");

        Process mspaintProc = procs[0];

        if (!mspaintProc.HasExited)
        {
            mspaintProc.Kill();
        }
    }
    finally
    {
        if (procs != null)
        {
            foreach (Process p in procs)
            {
                p.Dispose();
            }
        }
    }
}