我制作了一个打开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();
}
}
答案 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();
}
}
}
}