问题标签 [on-screen-keyboard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4952 浏览

winapi - 屏幕键盘关闭按钮事件?

在一个应用程序中,当它在平板电脑上运行时,我使用屏幕键盘 (OSK)。我们创建了一个名为 OSK 的类,它有一个显示和隐藏方法。

当用户在屏幕键盘上按下“enter”时,osk 会隐藏。问题是当用户使用关闭 (x) 按钮关闭 OSK 时。OSK 隐藏,但发生这种情况时需要在 UI 中更改某些内容。

有没有办法(事件或类似的东西)知道用户何时按下 OSK 上的关闭按钮?

我将展示一些用于显示和隐藏 OSK 的代码。显示的代码在 Oxygene 中(但我认为它看起来很像 C#)

首先我们有一些 dllImports:

在 show 方法中有这样的代码:

在 Hide 方法中,下一个代码用于隐藏 OSK:

更新:找到适用于 Windows 7 的工作解决方案....不适用于 Windows 8(我需要什么)

这就是我在 Windows 7 中解决问题的方法:主要思想是在 OSK 类中,当显示 osk 时我启动一个 Dispatchertimer。现在每秒检查 osk 窗口是否可见。如果是这样,则会触发一个事件,该事件可以在多个地方进行处理。(我还检查了计时器中的 _firstshown 布尔值,因为有时 osk 需要一段时间才能出现。

我是这样做的:首先我创建了 IsWindowVisible 方法的 dllImport

在 OSK.Show 中,我启动计时器并将 _firstShown 设置为 false(因为 osk 可能需要一段时间才能出现)在此之前,我将计时器间隔设置为 1 秒,并将 eventhandlerf 添加到 timer.Tick:

这是 _timer_tick 中的代码:

当它在我的开发机器(windows 7)上工作时很高兴,这种喜悦是短暂的,因为当我在平板电脑(windows 8)上测试它时它不起作用。计时器等工作正常,看起来 Windows 8 不处理 iswindowVisible 方法。

无论如何,非常感谢所有帮助

0 投票
2 回答
583 浏览

localization - 键盘布局定义文件

出于各种原因,我想编写自己的屏幕键盘以用于触摸屏应用程序。

我必须支持大约 25 种不同的语言,包括俄语、格力语、日语(平假名/片假名)和大多数欧洲国家。

键盘需要支持重音和变音符号,您可以在其中按住字母 o,然后显示“ø,ö,ó,ò,õ”等列表。

我正在寻找一些文件,这些文件定义了不同国家/地区键盘中包含哪些键,包括重音符号和变音符号。

我试图在 Ubuntu 和 android 源代码中找到它们,但没有成功。

0 投票
1 回答
1124 浏览

c# - 在屏幕键盘上旋转 Windows

目前我正在使用 C# 和 WPF,我想创建一个多用户应用程序。我指的是多点触控表

我正在寻找一种方法来拥有多个可以旋转的 Windows 键盘。

我想使用 Windows 键盘,因为我不可能为每种语言创建不同的键盘,包括中文、俄语、日语、希腊语等。

要显示我使用的键盘:

下面是我想要的一个例子。

多个键盘

0 投票
1 回答
911 浏览

qt - 在 Qt 中输入 QLineEdit 时显示屏幕键盘

我想在单击QLineEdit时显示osk.exe(onscreenkeyboard)并且当关注 osk.exe隐藏最小化时?我能怎么做?

谢谢

0 投票
0 回答
989 浏览

c++ - Windows 屏幕键盘(osk.exe)在 OSK 标题栏上的鼠标按下时冻结

我有一个将触摸事件转换为鼠标输入的 C++ 应用程序。我正在使用 SendInput API 在 Windows 7(32/64 位)系统上发送鼠标事件。为了允许用户在应用程序中输入字符,我使用了内置的 Windows屏幕键盘 (osk.exe)

当光标位于 OSK 窗口的窗口装饰(标题栏、系统菜单等)上时,我的应用程序生成的任何鼠标按下事件都会冻结鼠标。似乎只处理了鼠标按下事件,因为我可以看到 OSK 获得焦点。我的应用程序不断发送其他鼠标事件,但它们对 OSK 窗口没有影响。唯一的出路是按下/释放连接到系统的物理 USB 鼠标。

奇怪的是,通过从我的应用程序发送鼠标按下 OSK 键盘按钮来使用 OSK 输入字符工作正常。只是试图移动(或关闭)OSK 窗口会冻结鼠标处理。

作为解决方案,我尝试了以下操作:(1)在我的应用程序的清单文件中设置uiAccess=true(2)应用程序代码已经签名(3)应用程序驻留在受信任的位置

但仍然出现问题。

如果我以管理员身份运行我的应用程序,那么它可以正常工作。但我不希望我的应用程序以“以管理员身份运行”开始。

有什么建议吗?

0 投票
1 回答
1288 浏览

wpf - 如何使用 C# 更改屏幕键盘

我知道标题没有对我想要达到的目标给出完整的解释,但我很难找到适合我的问题的词。

我正在开发一个触摸应用程序。因为应用程序不应该看起来像普通的 Windows 应用程序,所以我使用 WPF 并为我的大多数控件提供了特殊样式。

但是,我想使用自己的屏幕键盘,而不是 windows 提供的 osk 或 tabtip.exe,因为我希望能够更改一些东西。

问题是,例如,如果我触摸一个文本框,文本框会弹出一个小按钮,这会打开屏幕键盘(当然是从 Windows 中)。我不想要那种行为。有没有办法禁用此按钮或更改代码,以便此按钮打开我自己的键盘而不是 osk/tabtip?任何帮助表示赞赏。

问候,斯特凡

0 投票
0 回答
441 浏览

windows - 如何在 Windows 7 上获得带有滑动和上下文预测的屏幕键盘?我有一个数位板作为输入

我有一个可用作出色输入的数位板——我不再使用鼠标了。

我想在我的计算机的屏幕键盘上使用滑动+上下文预测器。我可以在 Windows 7 上安装适用于 Windows 8 的任何软件吗?

另外,如果一切都是徒劳的,我应该忍受安装安卓模拟器的痛苦吗?它会占用任何内存吗?

0 投票
1 回答
2630 浏览

xaml - 禁用屏幕键盘

我正在为嵌入式应用程序开发 Windows 应用商店应用程序,其中唯一的输入设备是小型触摸屏。出于这个原因,我正在开发自己的数字和文本输入控件,这些控件与应用程序的视觉外观相匹配,并且在小屏幕上工作得更好。当文本框获得焦点时,是否可以防止出现 Windows 8 屏幕键盘?

0 投票
1 回答
2274 浏览

jquery - 使用 angularjs 指令打开用 JQuery 编写的屏幕键盘

我正在尝试在 angularJS 中编写一个指令,该指令允许在单击按钮或图像时打开此https://github.com/Mottie/Keyboard/屏幕键盘。到目前为止,我是根据这个主题制作的:使用“on change”回调从 jQuery 插件更新 AngularJS 模型,该指令在点击输入字段时打开键盘。任何人都可以帮我吗?

0 投票
1 回答
2211 浏览

qt - 屏幕键盘显示/隐藏

我想要什么我
使用简单的 QPushButtons 和 QFrame 制作了屏幕键盘。我想要的是,当输入小部件(QLineEdit、QTextEdit、QPlainText、QSpinBox)处于焦点时,我的屏幕键盘将显示,而当没有输入小部件处于焦点时,我的键盘将自动隐藏。

我该怎么办?

我的
方法我为每个 QLineEdit.、QTextEdit、QPlainEdit、QSpinBox 扩展了单独的类。然后我在他们的 focusIn 和 focusOut 事件上实现了键盘显示/隐藏。但它会导致一个问题。

问题
当表单上有两个输入小部件时,当我点击第一个小部件时,键盘会出现(很好)。当我单击第二个输入小部件时,由于第一个输入小部件的 focusOut 键盘隐藏(这是问题)。

我必须继续这种方法。我该怎么办?