labvIEW键盘输入
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在我的速查表中提供了VB下使用的虚拟键盘码,简称VK,如果对计算机键盘I/O比较了解,应该知道键盘上每一个键对应一个扫描码,扫描码是由OEM生商制定的,不同厂商生产的键盘同样一个按键的扫描码都有可能出现不一致的情况,为摆脱由于系统设备不一致造成扫描码不一致的情形,通过键盘驱动程序将扫描码映射为统一的虚拟键码表示,如回车键定义为VK_RETURN,其16进制值为0x0D。
我们是通过程序实现键盘自动输入的,显然我们应该采用VK而不是SCANCODE,原因:一是OEM SCANCODE可能有区别,二是需要驱动程序映射成VK.
模拟键盘我们用Keybd_event这个api函数,模拟鼠标按键用mouse_event函数。
首先介绍一下Keybd_event函数。Keybd_event能触发一个按键事件,也就是说回产生一
个WM_KEYDOWN或WM_KEYUP消息。当然也可以用产生这两个消息来模拟按键,但是没有直接用这个函数方便。Keybd_event共有四个参数,第一个为按键的虚拟键值,如回车键为vk_return,tab键为vk_tab。第二个参数为扫描码,一般不用设置,用0代替就行第三个参数为选项标志,如果为keydown则置0即可,如果为keyup则设成“KEYEVENTF_KEYUP”,第四个参数一般也是置0即可。用如下代码即可实现模拟按下键,其中的XX表示XX键的
虚拟键值,在这里也就是各键对应的键码,如''A''=65
keybd_event(65,0,0,0);
keybd_event(65,0,KEYEVENTF_KEYUP,0); ...
我们先制作一个STR_KBEVENT VI,把一个字符串转换成一个相应的VK数组,然后通过API
发出,产生键盘动作.
制作一个RING控件,包括常见的VK键
对每一个可见字符,进行查表,取得相应的VK码和大小写.
转换完毕后调用API,送出字符数组,实现键盘的自动输入.
实际效果演示:
通过VK,可以非常容易实现键盘操作,比如论坛上有人谈到如何调用PRINTSCREEN来打印屏幕,看看如何实现.