不要让表格以任何方式关闭

时间:2013-08-03 13:36:23

标签: c# .net winforms formclosing

我知道我可以取消用户在Windows窗体中单击x按钮的事件但是我想这样做以便任务管理器无法关闭它。我没有在网上找到这个,但我确信有办法做到这一点。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if(e.CloseReason == CloseReason.TaskManagerClosing)
    {
        e.Cancel = true;

    }
}

1 个答案:

答案 0 :(得分:1)

这里有几种情况:

  1. 通过“进程”选项卡执行“结束进程”来终止应用程序。在这种情况下,你什么都做不了。

  2. 您可以从“应用程序”标签中执行“结束任务”。您可以通过处理主窗体的结束事件并编写此代码来拦截它。您可以详细了解关闭原因here

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason == CloseReason.TaskManagerClosing)
        {
    
        }
    }
    
  3. 虽然如果您绝对想要确保用户无法阻止您的应用程序运行,您应该创建一个单独的应用程序来监视您的应用程序。每当它被杀死时,你的应用程序再次运行它。您可以通过以下代码检查应用程序是否正在运行,并在每10s或任何所需间隔后通过计时器调用此代码。

    private bool IsProcessRunning(string name)
    {
         foreach (Process p in Process.GetProcesses())
         {
                if (p.ProcessName.Contains(name))
                {
                    return true;
                }
          }
          return false;
     }