一种实现模拟键盘输入的方法及装置制造方法及图纸

技术编号:14866483 阅读:50 留言:0更新日期:2017-03-20 14:28
本发明专利技术公开了一种模拟键盘输入的方法和装置,所述方法和装置,通过创建虚拟键盘第一设备,安装一个与虚拟键盘第一设备对应的WDM(Windows Driver Model,视窗驱动程序模块)类型的虚拟键盘驱动,获取来自系统键盘驱动的虚拟输入接口的地址,当键盘过滤驱动被加载后,通过虚拟键盘驱动获取虚拟输入接口的地址,根据虚拟输入接口的地址实现模拟键盘输入。这种实现模拟键盘输入的方法及装置的稳定性好且系统应用性和兼容性好。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种实现模拟键盘输入的方法及装置
技术介绍
Windows的驱动架构是分层处理的,其中,自上而下具体包括第三方提供的键盘过滤驱动、Windows系统自带的系统键盘驱动和底层驱动。现有技术中,键盘过滤驱动为实现模拟键盘输入(模拟键盘输入具体指在没有用户参与键盘输入的情况下,键盘过滤驱动能够模拟键盘输入,使键盘过滤驱动之上的应用层以为键盘的某个按键被用户按下)的功能,需要获取系统键盘驱动中的虚拟输入接口(KeyboardClassServiceCallback)的地址,而现有技术中,均采用编码或者暴力搜索的方法获取虚拟输入接口的地址,这类方法不稳定且存在系统应用性和兼容性差的缺陷。
技术实现思路
本专利技术提供了一种实现模拟键盘输入的方法及装置,以解决现有技术中的实现模拟键盘输入的方法中存在的稳定性差及系统应用性和兼容性差的缺陷。本专利技术提供了一种模拟键盘输入的方法,包括:步骤s1:当键盘过滤驱动被系统加载后,所述键盘过滤本文档来自技高网...
一种实现模拟键盘输入的方法及装置

【技术保护点】
一种模拟键盘输入的方法,其特征在于,包括:步骤s1:当键盘过滤驱动被系统加载后,所述键盘过滤驱动根据预设的虚拟键盘驱动名称判断虚拟键盘驱动是否存在,如果是,则执行步骤s2;否则,结束流程;步骤s2:所述键盘过滤驱动根据所述虚拟键盘驱动,从虚拟键盘第一设备对象中获取虚拟输入接口地址;步骤s3:所述键盘过滤驱动根据所述虚拟输入接口地址模拟键盘输入。

【技术特征摘要】
1.一种模拟键盘输入的方法,其特征在于,包括:
步骤s1:当键盘过滤驱动被系统加载后,所述键盘过滤驱动根据预设的虚
拟键盘驱动名称判断虚拟键盘驱动是否存在,如果是,则执行步骤s2;否则,
结束流程;
步骤s2:所述键盘过滤驱动根据所述虚拟键盘驱动,从虚拟键盘第一设备
对象中获取虚拟输入接口地址;
步骤s3:所述键盘过滤驱动根据所述虚拟输入接口地址模拟键盘输入。
2.根据权利要求1所述的方法,其特征在于,所述步骤s2之前还包括:
步骤a1:创建虚拟键盘第一设备;
步骤a2:安装与所述虚拟键盘第一设备对应的WDM类型的虚拟键盘驱动,
所述虚拟键盘驱动被系统加载;
步骤a3:所述虚拟键盘驱动接收来自系统键盘驱动的所述虚拟输入接口地
址,将所述虚拟输入接口地址保存到所述虚拟键盘第一设备对象中。
3.根据权利要求2所述的方法,其特征在于,所述步骤a1具体包括:
步骤a11:创建所述虚拟键盘第一设备,获取虚拟键盘第一设备句柄,判断
是否创建成功,如果是,则执行步骤a12;否则,结束流程;
步骤a12:根据所述虚拟键盘第一设备句柄将所述虚拟键盘第一设备的设备
识别标识设置为第一设备识别标识,判断是否设置成功,如果是,则执行步骤
a2;否则,结束流程。
4.根据权利要求3所述的方法,其特征在于,所述步骤a2具体包括:
步骤a21:将所述虚拟键盘驱动的WDM驱动信息中的虚拟键盘标识设置为
第一设备识别标识;
步骤a22:将与所述虚拟键盘第一设备对应的所述虚拟键盘驱动的WDM驱
动信息注册到系统注册表中,判断所述虚拟键盘驱动是否被系统加载成功,如
果是,则执行步骤a3;否则,结束流程。
5.根据权利要求4所述的方法,其特征在于,所述步骤a11具体为:调用
系统的创建设备信息块函数创建所述虚拟键盘第一设备,获取所述虚拟键盘第
一设备句柄,根据创建设备信息块函数的返回值判断是否创建成功,如果是,
则执行步骤a12;否则,结束流程;
所述步骤a12具体为:根据所述虚拟键盘第一设备句柄调用系统的注册设备
信息函数,设置所述虚拟键盘第一设备的设备识别标识为所述第一设备识别标
识,根据注册设备信息函数的返回值判断是否设置成功,如果是,执行步骤a2;
否则,结束流程;
所述步骤a22具体为:使用所述第一设备识别标识和包括所述WDM驱动
信息的WDM驱动信息文件调用所述系统的更新设备驱动函数将与所述虚拟键
盘第一设备对应的所述虚拟键盘驱动的所述WDM驱动信息注册到系统注册表
中,根据所述更新设备驱动函数的返回值判断所述虚拟键盘驱动是否被所述系
统加载成功,如果是,则执行步骤a3;否则,结束流程。
6.根据权利要求2所述的方法,其特征在于,所述步骤a3具体为:所述虚
拟键盘驱动接收来自所述系统键盘驱动的第一硬件消息,从所述第一硬件消息
中获取虚拟输入接口地址,并将所述虚拟输入接口地址保存到所述虚拟键盘第
一设备对象中。
7.根据权利要求6所述的方法,其特征在于,所述从所述第一硬件消息中
获取虚拟输入接口地址具体为:从所述第一硬件消息中获取所述第一硬件消息
的子类型IOCTL_INTERNAL_KEYBOARD_CONNECT结构体的引用,根据所述

\tIOCTL_INTERNAL_KEYBOARD_CONNECT结构体的引用从所述
IOCTL_INTERNAL_KEYBOARD_CONNECT结构体中获取CONNECT_DATA结构体的
引用;根据所述CONNECT_DATA结构体的引用在所述CONNECT_DATA结构体中
获取虚拟输入接口地址。
8.根据权利要求2所述的方法,其特征在于,所述将所述虚拟输入接口地
址保存到所述虚拟键盘第一设备对象中具体为:从所述虚拟键盘第一设备对象
中获取扩展区域的引用,根据所述扩展区域的引用将所述虚拟输入接口地址保
存到所述扩展区域中。
9.根据权利要求1所述的方法,其特征在于,所述根据预设的虚拟键盘驱
动名称判断虚拟键盘驱动是否存在具体为:
所述键盘过滤驱动使用预设的虚拟键盘驱动名称调用系统的声明函数,获
取虚拟键盘驱动对象的引用,根据虚拟键盘驱动对象的引用判断虚拟键盘驱动
是否存在,如果虚拟键盘驱动对象的引用不为空,则判定虚拟键盘驱动存在;
如果虚拟键盘驱动对象的引用为空,则判定虚拟键盘驱动不存在。
10.根据权利要求9所述的方法,其特征在于,所述步骤s2具体为:所述
键盘过滤驱动根据所述虚拟键盘驱动对象的引用获取虚拟键盘驱动对象,根据
所述虚拟键盘驱动对象获取虚拟键盘第一设备对象的引用,根据所述虚拟键盘
第一设备对象的引用,从所述虚拟键盘第一设备对象中获取虚拟输入接口地址。
11.根据权利要求1所述的方法,其特征在于,所述步骤s2具体为:所述
键盘过滤驱动根据所述虚拟键盘驱动,获取所述虚拟键盘第一设备对象的引用,
根据所述虚拟键盘第一设备对象的引用,从所述虚拟键盘第一设备对象中获取
虚拟输入接口地址。
12.根据权利要求11所述的方法,其特征在于,所述根据所述虚拟键盘第
一设备对象的引用,从所述虚拟键盘第一设备对象中获取虚拟输入接口地址具
体为:根据所述虚拟键盘第一设备对象的引用,在所述虚拟键盘第一设备对象
中获取的扩展区域的引用,根据所述扩展区域的引用,在所述扩展区域中获取
所述虚拟输入接口地址。
13.根据权利要求1所述的方法,其特征在于,所述步骤s3之前还包括:
所述键盘过滤驱动判断是否获取到所述虚拟输入接口地址,如果是,则执行步
骤s3;否则,结束流程。
14.根据权利要求1所述的方法,其特征在于,所述步骤s2之后,还包括
所述键盘过滤驱动保存所述虚拟输入接口地址。
15.一种模拟键盘输入的装置,其特征在于,包括:第一判断模块、第一
获取模块和第一执行模块;
所述第一判断模块,用于当键盘过滤驱动被系统加载后,根据预设的虚拟
键盘驱动名称判断虚拟键盘驱动是否存在;
所述第一获取模块,用于当所述第一判断模块判定所述虚拟键盘驱动存在
后,根据所述虚拟键盘驱动,从虚拟键盘第一设备对象中获取虚拟输入接口地
址;
所述第一执行模块,用于根据所述第一获取模块获取到的所述虚拟输入接
口地址模拟键盘输入。
16.根据权利要求15所述的装置,其特征在于,还包括安装模块、创建模
块、接收模块和第一存储模块;
所述创建模块用于当所述第一获取模块根据所述虚拟键盘驱动,从虚拟键
盘第一设备对象中获取虚拟输入接口地址之前,创建虚拟键盘第一设备;
所述安装模块用...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1