使用JS调用工控机(Windows)虚拟键盘
作者:一诺滚雪球
在工控机触摸屏中,通过浏览器web端进行表单输入,当聚焦表单输入框并不会出现虚拟键盘进行输入,本文介绍将给大家介绍如何通过js调用工控机(Windows)虚拟键盘,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
1. 需求背景
在工控机触摸屏中,通过浏览器web端进行表单输入,当聚焦表单输入框并不会出现虚拟键盘进行输入。
解决方式:
- 使用第三方npm虚拟键盘插件引入使用
- 使用js调用系统自带的虚拟键盘
- 使用快捷键Win+Ctrl+O打开关闭
本文介绍下第二种方式进行操作。
2. 实现方式
在网页中通过js调用Windows上本地的exe程序,通过修改 Windows 注册表来使用
window.open 打开键盘,实际上是在设置一个自定义的 URL 协议(如 "keyboardProtocol")与键盘应用程序(通常是系统自带的屏幕键盘)相关联。当用户在网页中点击一个链接或使用 JavaScript 打开一个 "keyboardProtocol" URL 时,这将触发屏幕键盘的打开。
- 找出虚拟键盘的可执行文件路径,如:
C:\Windows\system32\osk.exe
- 编写注册文件reg文件
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\keyboard] // 定义自定义 URL 协议的关键部分 @="keyboardProtocol" // 自定义的 URL 协议名称 "URL Protocol"="keyboardProtocol" // 确保了系统知道这是一个自定义协议 [HKEY_CLASSES_ROOT\keyboard\DefaultIcon] // 定义了当用户在资源管理器或文件浏览器中双击与 "keyboardProtocol" 相关联的文件时显示的图标 @="C:\\windows\\system32\\osk.exe" // 屏幕键盘应用程序的路径 [HKEY_CLASSES_ROOT\keyboard\shell] // 定义了如何与该协议交互 [HKEY_CLASSES_ROOT\keyboard\shell\open] // 定义了当用户右键点击与 "keyboardProtocol" 相关联的文件或文件夹并选择“打开”时发生的行为 [HKEY_CLASSES_ROOT\keyboard\shell\open\command] // 定义了如何执行与 "open" 操作相关联的操作 @="\"C:\\windows\\system32\\osk.exe\""
- 双击执行
- js中调用
// 方法一 window.location.href="keyboard://" rel="external nofollow" rel="external nofollow" ; //or window.open("keyboard://"); </script> <!-- 方法二--> <a href="keyboard://" rel="external nofollow" rel="external nofollow" >打开应用程序</a>
3. 总结
该方法依赖于Windows系统自带的虚拟键盘,不适用于其他操作系统。
提供了一种通过JavaScript调用Windows系统自带的虚拟键盘的方法,解决在工控机触摸屏的web浏览器中进行表单输入时调用虚拟键盘的问题。
以上就是使用JS调用工控机(Windows)虚拟键盘的详细内容,更多关于JS调用Windows虚拟键盘的资料请关注脚本之家其它相关文章!