如何将组合键绑定到我的 vb.net 应用程序?我知道这与注册表有关,但我不知道该怎么做或如何去做。我希望用户能够在应用程序打开时按下这些键并让它执行我的功能,但在应用程序关闭时不能。
谢谢您的帮助!
如何将组合键绑定到我的 vb.net 应用程序?我知道这与注册表有关,但我不知道该怎么做或如何去做。我希望用户能够在应用程序打开时按下这些键并让它执行我的功能,但在应用程序关闭时不能。
谢谢您的帮助!
这取决于您要执行的操作:
如果您有一个 gui 应用程序并且想要处理关键事件,那么您可以在 keydown 事件处理程序中执行此操作
如果您想做更多低级的事情并拥有一个可以拦截所有击键的应用程序(无论该应用程序是否具有焦点/可见),那么您需要使用 pinvoke 来访问 win32 api。我建议您阅读以下内容: 链接文本
请让我们知道您正在尝试做什么,以便我们提供更好的反馈。
如果您使用的是对话框,那么您可以将“&”放入某些控件(按钮、复选框、单选按钮等)的文本中,这将导致 Alt 加上文本中的下一个字符用作加速器/快捷方式. 即,如果您按 Alt+O,“&Open”将激活“打开”按钮。如果使用 Alt+e,“打开&en”将激活。
除此之外,正如 Jason Irwin 所说,您需要为 KeyDown 或 KeyPress 事件向您的表单添加一个事件处理程序,然后检查按键是否是您感兴趣的组合键。这仅在用户激活您的表单时才有效(点击它给它输入焦点。如果他们把它放在另一个窗口后面,它不会对按键做出反应)
如果您不想显示表单,或者不想在您不是输入焦点应用程序时对按键做出反应,那么它会变得更加复杂(您需要使用隐藏表单或键盘挂钩)
编辑
好的,看起来你想要一个键盘挂钩。这看起来是一篇好文章。
使用 Google,我找到了这个 Keyhook 示例。
我以前在 Delphi WIN32 中使用过 keyhooks,所以我对它们有点熟悉。(只是不在 C# 中。)如果您将一个添加到 DLL,所有的地狱都可能会崩溃,因为大多数病毒扫描程序会将其识别为恶意软件行为。(特别是如果您以错误的方式使用它们,导致它们被注入到您系统上运行的每个进程中。)但是,keyhook 将允许从其他进程中捕获键组合。
对于没有编程要求的解决方案:将应用程序的快捷方式拖放到桌面上。编辑它,分配一个快捷方式,关闭它。按快捷键测试...