防止强制执行申请程序

时间:2012-03-01 06:52:13

标签: c# winforms .net-4.0 thread-safety

我有一个非常关键的过程,将在winform应用程序的后台运行。

如何阻止用户结束我的winform申请流程?

我想阻止用户:

  • 任务管理器
  • 结束流程
  • 在我的申请结束前关闭计算机
  • 杀死进程的任何其他软件相关方法(当然我不能阻止用户按下他的CPU的电源按钮)

我的代码在C#,框架4中,在VS2010 Pro中构建。

提前致谢。

3 个答案:

答案 0 :(得分:2)

基本上不可能阻止用户查杀进程(你甚至可以杀掉explorer.exe,这是windows的shell)。

因此,建议您以适应用户操作或崩溃的方式编写应用程序。在您的情况下,在该过程中进行可恢复操作是明智的。

答案 1 :(得分:2)

说明'绝对'需要保持此流程正常运行,我真的建议将流程的关键部分与winforms应用程序分开,并将此部分从用户计算机移到公司服务器。
在此服务器上写一个服务,它可以让您的重要工作保持活力并随时运行 这些“绝对”要求只能在具有冗余磁盘,ups单元和(特别是)的服务器计算机上强制执行。

答案 2 :(得分:1)

你无法绝对确保这些事情,但你可以得到一些你想要的东西:

1)仅在为过程分配安全级别的Vista或更高版本的Windows上运行

2)以管理员身份运行您的流程,因此它是最高安全级别。

3)确保已打开UAC(用户帐户控制)。

4)关闭对登录用户帐户的任务管理器的访问权限(通过组策略)

5)无法让登录用户升级到管理员,这样他就无法运行任何具有停止进程权限的内容。

6)使用Shutdown script检查您的进程是否正在运行并防止关闭。