2010-03-03 218 views
0

首先一些背景信息不同的方式处理物理和程序按键...是否由.NET或操作系统

我有在石板上的PC,即没有物理键盘上运行的C#.NET应用程序。我们使用Windows XP Tablet版内置的屏幕键盘来填充表单上的TextBox控件。表单没有特殊的按键处理(虽然UI的其他组件处理按键)。

偶尔屏幕上的键盘将停止注册一些按键。表单仍然有焦点,光标保留在文本框中。反复敲击一个键最终会导致显示字符。我们的应用程序使用了一些繁忙的处理线程,但是它的CPU利用率并不高。

当发生这种情况它仍然是这样,直到我们重新启动应用程序,在此之后,键盘将正常运行。当USB键盘连接并用于输入时,根本不会发生该问题。

我感兴趣的是差异有物理和程序按键之间?编程式按键是否会产生硬件中断作为物理键盘? .NET可以以不同的方式处理每种类型?

任何建议,可以帮助调试问题,将不胜感激!

回答

0

我从来没有与XP OSK的平板电脑版本的工作,但我已经使用了XP Embedded的版本。据我所知,Windows API以同样的方式将按键发送到.NET和MFC应用程序。事实上,如果我没有记错的话,我们就没有办法分辨两者之间的区别。据我知道的OSK不会造成硬件中断,但虚拟键码会在完全相同的方式为物理上的发送到应用级程序。

除非您正在运行自定义驱动程序或其他东西(可以访问硬件层),否则它听起来像它可能不是您的应用程序导致的问题。

如果您还没有,我会检查触摸屏是否具有最新的驱动程序并进行了适当的校准。我还会检查OSK是否具有来自Microsoft的所有最新更新。

相关问题