【问题标题】:How do I trap windows key, alt+tab, ctrl+alt+delete in C#?如何在 C# 中捕获 windows 键、alt+tab、ctrl+alt+delete?
【发布时间】:2010-11-23 17:15:22
【问题描述】:

如何捕获 Windows 键、Alt+TabCtrl+Alt+删除 在使用 C# 的 Windows 应用程序中?

【问题讨论】:

  • 是的,但最初的问题并没有使用酷炫的<kbd> 标签!
  • 我建议你不要这样做,如果可能的话。当我按下这些键时,我期待某些行为,如果我正在使用的应用程序阻止了这种行为,我会感到不安。
  • @Matt Grande:有时需要的不是用户想要的。例如,信息亭软件通常需要这种确切的行为。

标签: c# keyboard-hook


【解决方案1】:

您可以捕获 Ctrl-Alt-Delete。但是你需要实现你自己的GINA dll,它是由Winlogon加载的。

您需要使用 C 或 C++ 对其进行编码,因为它需要是本机 DLL。

【讨论】:

    【解决方案2】:

    正如 Jan 所说,如果不编写自己的 GINA,就无法捕获 CTRL-ALT-DEL。

    对于 Windows 或 ALT-TAB 键,您可以查看这些以获取帮助:

    Capturing Keystrokes without Focus(几乎重复)

    How To Set A Windows Hook

    Hooks(低级,但会解释 P/Invoke 需要什么)

    【讨论】:

      【解决方案3】:

      几乎按照定义,你 can't "trap" ctrl-alt-delete。

      【讨论】:

      • 是的,您可以(使用自定义 GINA)。但不是在 C# 中。
      【解决方案4】:

      AFAIK Ctrl + Alt + Delete 无法使用应用程序捕获。

      查看这个问题以获得更多想法:How to trap the keyboard strokes on a c# win forms application (CTRl + alt +Del)

      【讨论】:

        【解决方案5】:

        一些远程管理软件和虚拟机可以做到这一点。如果您按 [CTRL]+[ALT]+[DEL],特定的 Windows 对话框仍将打开,但应用程序也会显示,您已按 [CTRL]+[ALT]+[DEL] 并且可能希望它生效在目标机器上而不是您的主机上。捕获这些键似乎很容易,但取消事件可能更难。

        【讨论】:

        • 这根本不是问题的答案。
        猜你喜欢
        • 2013-09-29
        • 2014-01-09
        • 2019-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-17
        相关资源
        最近更新 更多