【问题标题】:How to start a virtual keyboard without loosing focus in WinXP?如何在 WinXP 中启动虚拟键盘而不失去焦点?
【发布时间】:2010-07-12 11:12:43
【问题描述】:

我需要从我的应用程序中启动一个虚拟键盘(即 click-n-type),以允许用户在活动字段中输入。当用户关注我的应用程序窗口中的编辑框时,虚拟键盘会弹出以允许输入。

但是,我无法一键使用它。当我使用“start click-n-type.exe”时,键盘正常启动,但编辑框失去焦点。当我使用“start /min click-n-type.exe”时,编辑框保持焦点但键盘最小化。有没有办法同时保持焦点不变和虚拟键盘的位置?

【问题讨论】:

  • 你使用什么编程语言?
  • Java,我用 Runtime.getRuntime().exec() 运行虚拟键盘

标签: windows keyboard focus virtual


【解决方案1】:

通常,我建议将您的应用程序加载为进程 dll,但这可能需要大量重新编程。相反,这可能会有所帮助:

  • 始终加载您的应用程序,使其不可见
  • 当活动字段获得用户输入时,将表单设置更改为无边框且始终位于顶部;
  • 您的应用程序现在应该可以使用了。另一个应用程序现在是 Z 顺序中的下一个应用程序。确保你有它的窗口句柄;
  • 当有人在您的虚拟键盘上键入内容或单击某些内容时,切换焦点(用户不会注意到,您始终处于顶部)并使用 SendKeys
  • 然后将焦点切换回您的应用程序。

还有其他编写此类应用程序的方法,它们更流畅,但需要深入了解窗口消息传递模型以及如何从其他应用程序加载/卸载 dll。

【讨论】:

  • 这听起来工作量很大。我不想编写自己的虚拟键盘,而是想在我的 GUI 应用程序中使用 click-n-type。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-31
  • 1970-01-01
  • 2021-07-05
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
相关资源
最近更新 更多