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

文档序号:9864914阅读:321来源:国知局
一种实现模拟键盘输入的方法及装置的制造方法
【技术领域】
[0001] 本发明设及计算机技术领域,特别设及一种实现模拟键盘输入的方法及装置。
【背景技术】
[0002] Windows的驱动架构是分层处理的,其中,自上而下具体包括第Ξ方提供的键盘过 滤驱动、Windows系统自带的系统键盘驱动和底层驱动。现有技术中,键盘过滤驱动为实现 模拟键盘输入(模拟键盘输入具体指在没有用户参与键盘输入的情况下,键盘过滤驱动能 够模拟键盘输入,使键盘过滤驱动之上的应用层W为键盘的某个按键被用户按下)的功能, 需要获取系统键盘驱动中的虚拟输入接口化巧boardClassService化Uback)的地址,而现 有技术中,均采用编码或者暴力捜索的方法获取虚拟输入接口的地址,运类方法不稳定且 存在系统应用性和兼容性差的缺陷。

【发明内容】

[0003] 本发明提供了一种实现模拟键盘输入的方法及装置,W解决现有技术中的实现模 拟键盘输入的方法中存在的稳定性差及系统应用性和兼容性差的缺陷。
[0004] 本发明提供了一种模拟键盘输入的方法,包括:
[0005] 步骤si:当键盘过滤驱动被系统加载后,所述键盘过滤驱动根据预设的虚拟键盘 驱动名称判断虚拟键盘驱动是否存在,如果是,则执行步骤s2;否则,结束流程;
[0006] 步骤s2:所述键盘过滤驱动根据所述虚拟键盘驱动,从虚拟键盘第一设备对象中 获取虚拟输入接口地址;
[0007] 步骤S3:所述键盘过滤驱动根据所述虚拟输入接口地址模拟键盘输入。
[000引本发明还提供了一种模拟键盘输入的装置,包括:第一判断模块、第一获取模块和 第一执行模块;
[0009] 所述第一判断模块,用于当键盘过滤驱动被系统加载后,根据预设的虚拟键盘驱 动名称判断虚拟键盘驱动是否存在;
[0010] 所述第一获取模块,用于当所述第一判断模块判定所述虚拟键盘驱动存在后,根 据所述虚拟键盘驱动,从虚拟键盘第一设备对象中获取虚拟输入接口地址;
[0011] 所述第一执行模块,用于根据所述第一获取模块获取到的所述虚拟输入接口地址 模拟键盘输入。
[0012] 本发明的有益效果为:本发明提供的实现模拟键盘输入的方法及装置,通过安装 一个与虚拟键盘第一设备对应的WDM(Windows Driver Model,视窗驱动程序模块)类型的 虚拟键盘驱动,获取来自系统键盘驱动的虚拟输入接口的地址,当键盘过滤驱动被加载后, 通过虚拟键盘驱动获取虚拟输入接口的地址,根据虚拟输入接口的地址实现模拟键盘输 入,运种实现模拟键盘输入的方法及装置的稳定性好且系统应用性和兼容性好。
【附图说明】
[0013] 图1为本发明实施例1提供的一种虚拟键盘驱动获取虚拟输入接口的地址的方法;
[0014] 图2为本发明实施例1提供的一种键盘过滤驱动根据虚拟键盘驱动获取虚拟输入 接口的地址的方法;
[0015] 图3为本发明实施2提供的一种模拟键盘输入的装置的结构图。
【具体实施方式】
[0016] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0017]实施例1
[0018] 本实施例提供了一种虚拟键盘驱动获取虚拟输入接口的地址的方法,如图1所示, 具体包括:
[0019] 步骤101:创建虚拟键盘第一设备;
[0020] 步骤101具体包括:
[0021 ]步骤1011:安装程序创建虚拟键盘第一设备,获取虚拟键盘第一设备句柄,判断是 否创建成功,如果是,则执行步骤1012;否则,模式键盘输入失败;
[0022] 具体地,安装程序调用系统的创建设备信息块函数创建设备名称为"Virtual Keyboard",设备类型标识为键盘类型标识的虚拟键盘第一设备,获取虚拟键盘第一设备句 柄,判断创建设备信息块函数的返回值是否为TRUE,如果是,则判定创建成功,执行步骤 1012;否则,判定创建失败,模式键盘输入失败。
[0023] 本实施例中,创建设备信息块函数具体为:
[0024] BOOL S巧upDiCre舶Devicein化(
[0025]
[00%] 其中,参数DeviceName具体为虚拟键盘第一设备的设备名称;参数ClassGuid具体 为虚拟键盘第一设备的设备类型标识,更加具体地,键盘类型标识具体为:{0X4D36E96B, 0址325,0x1 ICE,Ox邸,OxCl ,0x08,0x00,0x2B,0xEl ,0x03,0x18};参数DeviceInfoData为与 虚拟键盘第一设备对应的虚拟键盘第一设备句柄。
[0027] 步骤1012:根据虚拟键盘第一设备句柄将虚拟键盘第一设备的设备识别标识设置 为第一设备识别标识,判断是否设置成功,如果是,则执行步骤102;否则,结束流程;
[0028] 具体地,根据虚拟键盘第一设备句柄调用系统的注册设备信息函数,设置虚拟键 盘第一设备的设备识别标识为第一设备识别标识,判断注册设备信息函数的返回值是否为 TRUE,如果是,则判定设置成功,执行步骤102;否则,判定设置失败,结束流程。
[0029] 其中,注册设备信息函数具体为:
[0032] 其中,参数Property具体为SPDRP_HARDWAREID,通知系统本步骤用于设置设备识 别标识;参数PropertyBuf f er具体为第一设备识别标识,用于通知系统将虚拟键盘第一设 备的设备识别标识设置为第一设备识别标识。
[0033] 本实施例中,设备识别标识为设备的唯一识别标识;优选地,设备识别标识为设备 的硬件ID,本实施例中,第一设备识别标识可W具体为"VKeyboard"。
[0034] 需说明的是,当执行完步骤101之后,虚拟键盘第一设备的设备信息被系统注册到 系统注册表中,系统重启后,虚拟键盘第一设备的设备信息不会被系统清空。虚拟键盘第一 设备的设备信息即为:虚拟键盘第一设备的设备名称、设备类型标识和设备识别标识等信 息。
[0035] 步骤102:安装与虚拟键盘第一设备对应的WDM类型的虚拟键盘驱动,虚拟键盘驱 动被系统加载;
[0036] 步骤102具体包括:
[0037] 步骤1021:安装程序将WDM类型的虚拟键盘驱动的WDM驱动信息中的虚拟键盘标识 设置为第一设备识别标识;
[0038] 具体地,安装程序创建包括WDM类型的虚拟键盘驱动的WDM驱动信息的WDM驱动信 息文件;并将WDM驱动信息文件中的虚拟键盘标识设置为虚拟键盘第一设备的第一设备识 别标识。
[0039] 例如,WDM驱动信息文件具体为:FT_VKeyPad. inf文件,在FT_VKeyPad. inf文件中 指定了与虚拟键盘驱动对应的虚拟键盘设备的虚拟键盘标识为第一设备识别标识。
[0040] [VKBModels]
[0041 ] %Vi;rtua;LKeyboard% =V肺 oard,VKeyboard;其中,VKeyboard 为第一设备识别标 识。
[0042] 本实施例中,虚拟键盘标识用于标记和虚拟键盘驱动对应的虚拟键盘设备。
[0043] 步骤1022:安装程序将与虚拟键盘第一设备对应的虚拟键盘驱动的WDM驱动信息 注册到系统注册表中,判断虚拟键盘驱动是否被系统加载成功,如果是,则执行步骤103;否 贝1J,结束流程;
[0044] 具体地,安装程序使用第一设备识别标识和包括WDM驱动信息的WDM驱动信息文件 调用系统的更新设备驱动函数将与虚拟键盘第一设备对应的虚拟键盘驱动的WDM驱动信息 注册到系统注册表中,判断更新设备驱动函数的返回值是否为TRUE,如果是,则判定虚拟键 盘驱动被系统加载成功,执行步骤103;否则,判定失败,结束流程。
[0045] 本实施例中,更新设备驱动函数具体为:
[0046]
[0047] 其中,参数化rdwareld具体为第一设备识别标识,化llInfPath具体为虚拟键盘驱 动的WDM驱动信息文件,可W但不限于具体为FT_VKeyPad.ini·文件。
[0048] 需要说明的是,当系统通过更新设备驱动函数获取到第一设备识别标识后,从系 统注册表中找到对应的虚拟键盘第一设备,系统加载与虚拟键盘第一设备对应的系统键盘 驱动,创建与系统键盘驱动对象对应的系统键盘第一设备对象,根据系统键盘第一设备对 象的引用将系统键盘第一设备对象加入到第一设备对象链中;之后,系统根据系统注册表 中的WDM驱动信息加载虚拟键盘驱动,创建与虚拟键盘驱动对象对应的虚拟键盘第一设备 对象,并根据虚拟键盘第一设备对象的引用,将虚拟键盘第一设备对象加入到第一设备对 象链中,并将虚拟键盘第一设备对象和系统键盘第一设备对象建立链接。当虚拟键盘驱动 被加载后,虚拟键盘驱动注册硬件消息处理函数,用于接收硬件消息。
[0049] 本实施例中,驱动对象、设备对象的形态都是W结构体的方式存储在系统内存中 的,其中,驱动对象中包括驱动对象的名称和与驱动对象对应的设备对象的引用等信息,例 如系统键盘驱动对象的结构体如下:
[(Κ)加 ]
[0051 ]其中,DeviceObject为系统键盘驱动对象中的系统键盘第一设备对象的引用; 肺化i d为系统键盘驱动对象的名称。
[0052] 本实施例中,加入虚拟键盘第一设备对象之后的第一设备对象链为:
[0053] 虚拟键盘第一设备对象-〉系统键盘第一设备对象-〉底
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1