如何在VB.NET中获取原始键盘输入?

时间:2014-04-25 16:42:26

标签: vb.net input keyboard ascii

我知道我可以使用KeyDownKeyUpKeyPress事件来处理键盘输入,但输入使用ASCII输入,这意味着它不流畅(即,当我按住一个键时,事件会重复,好像我在键入一些东西:触发一次,等待半秒,然后才重复)。如何从键盘上获取原始键输入,直接检查键是否被按下,而不是查看键盘缓冲区?

1 个答案:

答案 0 :(得分:0)

它只是查看键盘缓冲区的KeyPress事件。

当按下某个键时,会触发KeyDown事件,如果它不是控制键(shift,ctrl,alt等),它还会产生键盘缓冲区的字符,触发KeyPress事件。

只要按下该键,就会为键盘缓冲区生成更多字符,每个字符都会触发另一个KeyPress事件。

释放密钥后,会触发KeyUp事件。

要跟踪按下的按键,您可以使用KeyDownKeyUp事件。无法直接检查是否按下了某个键,键盘只通过向下发送键的事件与计算机进行通信。

请注意KeyDown事件并不总是跟随同一个键的KeyUp事件,但事件可能会重叠。例如,键入大写字母A通常会生成以下KeyDownKeyUp个事件:

KeyDown for shift
KeyDown for a
KeyUp for a
KeyUp for shift