【问题标题】:c# Check if process is running and act properly [duplicate]c#检查进程是否正在运行并正确运行[重复]
【发布时间】:2015-06-10 03:18:12
【问题描述】:

要检查应用程序是否正在运行并继续或返回到您以前的状态,这应该会让您的生活更轻松,以免退出任何当前进程

 protected override void OnFormClosing(FormClosingEventArgs e)
        {
            Process[] pname = Process.GetProcessesByName("ConsoleApplication");
            if (pname.Length == 0)
            {
            }
            else
            {
                MessageBox.Show("You cannot exit until the process has finished");
                e.Cancel = true;
            }

        }

【问题讨论】:

  • FormClosingEventArgs 具有取消表单关闭事件的选项。 msdn.microsoft.com/en-us/library/…
  • 嗯,你有什么尝试做但至今没有奏效?
  • 所以你的问题是:如果有一个以特定名称运行的进程,如何获取在我的 PC 中运行的进程列表并阻止应用程序退出? Process.GetProcessesByName
  • 重复是正确的,但@BrokenGlass下面的答案更好

标签: c#


【解决方案1】:

您可以检查具有该名称的活动进程:

using System.Diagnostics;
//...
bool isRunning = Process.GetProcessesByName("blocker.exe").Any();

但请注意,您不能强制您的可执行文件仍在运行 - 这仅在不强制关闭您的进程(“kill”)但正确要求它自行关闭(“close”)时才有效。

【讨论】:

  • @newbie 您的原始问题(现已注释掉)包含处理您的新问题的逻辑。 if 和 e.Cancel = true 有什么问题?
猜你喜欢
  • 2017-06-10
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多