【问题标题】:Password Protect Winforms Application密码保护 Winforms 应用程序
【发布时间】:2015-06-09 22:56:36
【问题描述】:

我有一个在系统托盘中运行的简单 WinForms 应用程序。如果用户试图从任务管理器中关闭程序,是否可以通过密码保护程序不被关闭?

理想情况下,我希望阻止用户关闭进程,但如果重新启动 Windows,我希望它在没有提示的情况下关闭。很像防病毒程序。

【问题讨论】:

  • 您是否尝试过摆弄FromClosing 事件?您可以使用FormClosingEventArgsCancel 属性控制表单关闭。将Cancel 设置为false 将限制应用程序被关闭。 CloseReason 属性指示关闭表单的原因(这是一个枚举 Systems.Windows.Forms.CloseReason)。

标签: c# winforms security systray


【解决方案1】:

如果用户拥有正确的权限,他们将能够从任务管理器中终止您的进程。

正如@fujiFX 在他的评论中提到的那样,FormClosing 事件是一个好的开始,总比没有好。

FormClosing 事件在表单关闭时发生。当表单关闭时,它会被释放,释放与表单相关的所有资源。如果您取消此事件,表单将保持打开状态。要取消关闭表单,请将传递给事件处理程序的FormClosingEventArgsCancel 属性设置为true

【讨论】:

    【解决方案2】:

    这很难做,但是你可以创建两个应用程序,一个是主程序,两个是辅助程序。如果助手被杀死,则主应用程序将重新启动它。如果主应用被杀死,那么助手会重新启动主应用。

    【讨论】:

      【解决方案3】:

      您可以在 YourService.Stop 方法上进行此验证(假设您使用的是从 ServiceBase 继承的 Windows 服务),但据我所知,您无法阻止用户终止进程,只是为了关闭应用程序( Windows 中的两种不同的东西)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-01
        • 2016-01-04
        • 1970-01-01
        相关资源
        最近更新 更多