按键时卡住

本文关键字: | 更新日期: 2023-09-27 18:00:46

我在这里使用turotial

http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx

这会捕获按键并将其打印到控制台。有人知道如何使这对控制和另一个密钥(比如ctrl + w)有效吗?如果是的话,我可以得到一些指导吗?或者你可以建议我需要研究什么来找出答案吗?

感谢

按键时卡住

System.Windows.Forms.Control.ModifierKeys应该做到这一点,告诉您是否按下了shift、alt和/或control。

例如;

if (Keys.W == (Keys)vkCode && Keys.Control == Control.ModifierKeys)

应根据您的链接检查^W组合。

如果你想知道按下了哪个键,那么你可以使用文本框的KeyPress事件。

它有KeyPressEventArgs对象,该对象包含"KeyChar"属性,该属性存储按键的字符。

查看此链接如何制作一个只接受数字的文本框?

这里的问题不同,但提供的解决方案也可以帮助您。

这里真正的元问题是:如何实现热键,例如Ctrl-W,您可以使用Win32 RegisterHotKey API来实现。

您链接到的示例使用了一个低级键盘挂钩,虽然它们有自己的用途,但它们往往是罕见的和专门的(可能是一个自动测试输入记录应用程序,或类似的应用程序)。LL键盘挂钩也有一些性能问题,请注意,它们可以监听键,但即使你的代码对键做出反应,原始键仍然会继续到它最初要使用的应用程序上。此外,你必须小心你在hookproc中所做的事情——不要做任何可能阻止的事情。最好的做法是做一些基本的检查(例如,检查它是否是你想要的钥匙),然后给自己发一条信息,然后在空闲时处理该信息。

对于大多数通用应用程序,通常有一种更好的方法。如果你正在考虑热键,RegisterHotKey就是你的选择。

相关文章:
  • 没有找到相关文章