C#或.NET Flushing键盘缓冲区

Ama*_*tel 6 c# keyboard buffer flush

如何使用Windows窗体在C#中刷新键盘缓冲区?

我有一个条形码扫描仪,就像一个键盘.如果扫描了一个非常长的条形码并在表单上点击取消按钮,我需要清除键盘缓冲区.所以我需要刷新并忽略所有挂起的输入.我需要清除缓冲区,因为如果条形码包含空格,则空格将被处理为按钮点击,这是不必要的.

小智 5

while (Console.KeyAvailable) { Console.ReadKey(true); }
Run Code Online (Sandbox Code Playgroud)


rei*_*ein 1

我不确定你能做到这一点。击键进入主事件循环的事件队列。您为取消这些击键而采取的任何操作都将在击键之后放入队列中。

事件循环仅在处理完击键后才会执行取消操作。您只能根据击键序列中间发生的某些事件来取消击键。