【问题标题】:Is there any method to disable logoff,lock and taskmanager in ctrl+alt+del in C#有什么方法可以在 C# 中禁用 ctrl+alt+del 中的注销、锁定和任务管理器
【发布时间】:2011-03-03 09:37:52
【问题描述】:

在运行我的窗口应用程序时。如果用户按 ctrl+alt+del 我需要禁用这些按钮..有什么方法

【问题讨论】:

  • 您说的是一个 Windows 应用程序,但在您的标签中使用了 asp.net。哪一个是正确的?
  • 它是一个窗口应用程序,它在窗口服务器上运行...
  • 什么??你标记了asp.net 并谈论了window application...?顺便提一下:你知道客户端和服务器端的区别吗?
  • 如果你的应用这样做了,它肯定会被当作病毒阻止!
  • 您的目标是什么版本的 Windows?在 XP 中,您需要编写自己的替换 msgina.dll。从 Windows Vista 开始,它已被替换。如果您在问题中添加一些澄清细节,我可以给您更好的建议。

标签: c# winforms


【解决方案1】:

我当然希望不会 - Ctrl-Alt-Del 组合键被操作系统截获并且永远不会传递给应用程序。这是一项安全措施:如果用户按下 Ctrl-Alt-Del,则 保证用户将看到的是登录屏幕/任务管理器(取决于您拥有的 Windows 版本),而不是一些试图窃取他的密码的应用程序(我并不是暗示这是您的意图,但这些应用程序就是 Ctrl-Alt-Del旨在防止)。

【讨论】:

    【解决方案2】:

    你不能禁用它们,但也许你喜欢禁用任务管理器,或者锁定。

    Disable Lock Workstation button:
    Hive: HKEY_CURRENT_USER
    Key: Software\Microsoft\Windows\CurrentVersion\Policies\System 
    Name: DisableLockWorkstation 
    Type: REG_DWORD
    Value: 1 disable
    
    Disable Task Manager button: 
    Hive: HKEY_CURRENT_USER
    Key: Software\Microsoft\Windows\CurrentVersion\Policies\System 
    Name: DisableTaskMgr
    Type: REG_DWORD
    Value: 1 disable
    

    你也可以考虑

    Disable Change Password button: 
    Hive: HKEY_CURRENT_USER
    Key: Software\Microsoft\Windows\CurrentVersion\Policies\System 
    Name: DisableChangePassword 
    Type: REG_DWORD
    Value: 1 disable
    
    Disable Logoff button: 
    Hive: HKEY_CURRENT_USER
    Key: Software\Microsoft\Windows\CurrentVersion\Policies\Explorer Note: change from System to Explorer
    Name: NoLogoff
    Type: REG_DWORD
    Value: 1 disable
    

    【讨论】:

    • 请注意您建议编辑注册表。最好不要在未经我许可的情况下让应用程序在我的计算机上执行此操作!
    • 感谢它运行良好.. 表单关闭需要将所有这些更改回默认值,我同意编辑注册表不是一个好方法。但是有没有其他简单的方法可以避免它..
    • 我正在使用 Windows XP,,,上面提到的编辑注册表的方法是更糟糕的黑客使用。但就搜索而言,我没有找到任何解决方案。我能找到的只是重写Gina.dll 但它真的很难,因为它不是免费的,所以我不能破坏 Windows。
    • @deepu:这没有任何意义。如果您以某种方式损坏了 Windows 安装,您可以重新安装它。您不必每次都购买新副本。如果您是为自己的计算机执行此操作,请随时编辑注册表。但是你应该在超级用户上问过这个问题。这不是推荐的实现方式。抱怨以正确的方式做事有多难也不是真正的解决方案。有an article in MSDN Magazine关于自定义GINA。
    • 我知道负面因素是因为有人说编辑此注册表值不好……好吧,程序员编写负责任的程序来做正确的工作,以太制造废话。编辑或不编辑注册表值对于犯规不要破坏任何东西有点关键 - 就像 file.delete(*) 一样。
    【解决方案3】:

    如果我没记错的话,CTRL-ALT-DEL 是唯一不能覆盖的组合键。

    【讨论】:

      【解决方案4】:

      我也有同样的问题。我必须不让用户访问Ctrl+Alt+Del 功能。我确实找到了禁用它们的解决方法。 我更改了注册表中的键盘映射。由于删除Ctrl-Alt-Del 功能可能很危险,我只需通过ScrollLock 键切换Alt 键。 为此,您需要添加以下注册表项(有关详细说明,请参阅此 website,如果您想通过另一个键 but here a link 更改 ScrollLock,您可以在各处找到键盘扫描代码):

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
      
      Key Name: Scancode Map
      Type: Binary
      Value to enter: 
      00 00 00 00 
      00 00 00 00 
      03 00 00 00 => represent the number of keys you are modifying + 1 (for some reason, mapping to another key is not counting as 1)
      00 00 38 00 => Left-Alt key is 38 00 so here we give 00 00 (nothing) to the Left-Alt key. It will disable it.
      38 00 46 00 => ScrollLock key is 46 00 so here we give the Left-Alt key functionality to our ScrollLock key. ScrollLock will be Alt key now.
      00 00 38 E0 => Right-Alt key is 38 E0 so here we give 00 00 (nothing) to the Right-Alt key. It will disable it.
      00 00 00 00 => Terminator
      

      希望它对你们中的一个人有所帮助!您只需要在您的应用程序中注册此密钥,但请注意它会影响整个系统!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-02
        相关资源
        最近更新 更多