C# 不允许窗体以任何方式关闭
我知道我可以取消用户在windows窗体中单击x按钮的事件,但我希望这样做,以便任务管理器无法关闭它。我还没有在网上找到这一点,但我相信有办法做到这一点C# 不允许窗体以任何方式关闭,c#,.net,winforms,formclosing,C#,.net,Winforms,Formclosing,我知道我可以取消用户在windows窗体中单击x按钮的事件,但我希望这样做,以便任务管理器无法关闭它。我还没有在网上找到这一点,但我相信有办法做到这一点 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if(e.CloseReason == CloseReason.TaskManagerClosing) { e.Cancel = true; } } 这里有两
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if(e.CloseReason == CloseReason.TaskManagerClosing)
{
e.Cancel = true;
}
}
这里有两种情况:
10s
或任何所需间隔后通过计时器调用此代码
private bool IsProcessRunning(string name)
{
foreach (Process p in Process.GetProcesses())
{
if (p.ProcessName.Contains(name))
{
return true;
}
}
return false;
}
你为什么要这么做?这是任务管理器的基本功能。如果你能描述一下你想要实现的目标,也许可以提出一个替代方案。我想你是在为一个信息亭或类似的东西写一个实用程序,在那里你不希望普通用户弄乱系统?对于类似的情况,只需将用户作为来宾登录即可。任务管理器首先会很好地询问。你阻止它。然后它切换到谋杀模式。并使用TerminateProcess()终止进程。你不能停止。用户总是赢。“我相信有办法做到。”我相信你错了。无法阻止用户关闭您的应用程序。你可以让它变得更困难,但最终用户可能会杀死你的应用。我不知道如何实现?如果(e.CloseReason==CloseReason.TaskManager关闭){e.Cancel=true;}仍然无法实现,我已经尝试过了,我已经更新了我的answer@jister你在哪里结束你的表格?进程选项卡还是应用程序选项卡?不,你不明白我的意思。他们可以更频繁地投票,但这会严重影响他们的表现,所以我可能一次只杀一个。或者我可以编写一个脚本来同时终止这两个进程。或者我可以按下红色的大开关,从USB启动,然后从硬盘上删除这两个程序。这是任何合理的用户都应该对这样一个行为不端的程序所做的。
private bool IsProcessRunning(string name)
{
foreach (Process p in Process.GetProcesses())
{
if (p.ProcessName.Contains(name))
{
return true;
}
}
return false;
}