0

首先是一些背景信息...

我有一个在平板电脑上运行的 C# .NET 应用程序,即没有物理键盘。我们正在使用 Windows XP Tablet 版本中内置的屏幕键盘来填充表单上的 TextBox 控件。表单没有特殊的按键处理(尽管 UI 的其他组件确实处理按键)。

有时,屏幕键盘会停止记录某些按键。表单仍具有焦点,光标仍保留在文本框中。反复敲击一个键最终会导致字符显示。我们的应用程序使用了许多繁忙的处理线程,但它远未达到 100% 的 CPU 利用率。

当这种行为发生时,它会一直保持这种状态,直到我们的应用程序重新启动,之后键盘才能正常运行。当连接 USB 键盘并用于输入时,根本不会出现此问题。

我对物理按键和程序按键之间有什么区别感兴趣?编程按键是否会像物理键盘一样产生硬件中断?.NET 可以不同地处理每种类型吗?

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

4

1 回答 1

0

我从未使用过 XP OSK 的平板电脑版本,但我使用的是 XP Embedded 版本。据我所知,Windows API 以相同的方式向 .NET 和 MFC 应用程序发送按键。事实上,如果我没记错的话,我们无法以编程方式区分两者之间的区别。据我所知,OSK 不会导致硬件中断,但是虚拟键代码将以与物理代码完全相同的方式发送到应用程序级程序。

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

如果您还没有,我会检查触摸屏是否有最新的驱动程序并正确校准。我还会检查 OSK 是否包含来自 Microsoft 的所有最新更新。

于 2010-03-03T04:04:26.567 回答