多输入焦点的软键盘输入装置和方法

文档序号:6471210阅读:168来源:国知局
专利名称:多输入焦点的软键盘输入装置和方法
多输入焦点的软键盘输入装置和方法技术领域 、本发明涉及信息安全领域,特别涉及一种多输入焦点的软键盘输入装置和方法。
背景技术
键盘监视和窗口文本截取是常见的两种窃取密码的攻击手段。为了解决键盘监视的问题,可以使用软键盘进行输入。软键盘是以软件方式模拟键盘行 为,通过鼠标点击输入字符的程序。软键盘可以用于防止木马记录通过物理键盘输入的密码。 然而,用户通过软键盘输入字符时,鼠标必然点击在软键盘上,会导致输入控件失去焦点, 无法接受输入的字符,因此,使用软键盘必须预先确定焦点位置,这给使用带来了不便。 WindowsXP中系统自带的一个软键盘不会导致控件失去焦点,但它使用的是键盘码,和物理 键盘完全一致,不具备防木马功能。为了增加窗口文本截取的难度,使用以不具有输入焦点的非输入控件为基类的自绘控件 进行输出显示,与软键盘一起完成人机交互。由于所述输出控件自身没有焦点,当存在多个 输出时(如修改PIN码的界面),需要一种方法来确定当前输入对应的输出控件。常规的做法 是根据鼠标点击的落点所在的位置来判断,但与软键盘配合使用时,每当需要判断当前输出 位置时,鼠标的落点总是在软键盘上,因此无法使用常规做法。发明内容为了提高软键盘输入的安全性,本发明实施例提供了一种多输入焦点的软键盘输入装置和方法。所述技术方案如下一种多输入焦点的软键盘输入装置,所述装置包括主控模块和存储模块; 所述主控模块包括多个标准输入/输出单元,用于接收鼠标点击消息;多个模拟输入/输出单元,用于接收鼠标点击消息,所述多个模拟输入/输出单元与所述多 个标准输入/输出单元数目相等,且一一对应;输入焦点标志设置单元,用于当所述标准输入/输出单元被鼠标点击时,根据标准输入/输出单元与焦点标志的对应关系,将当前输入焦点标志设置为所述标准输入/输出单元的焦点 标志,当所述模拟输入/输出单元被鼠标点击时,根据模拟输入/输出单元与焦点标志的对应关 系,将当前输入焦点标志设置为所述模拟输入/输出单元的焦点标志;
软键盘单元,用于存储坐标与字符之间的映射关系,并在有用户点击软键盘的鼠标点击 消息时,根据鼠标点击的位置确定相应的字符,在软键盘输入模式下,如果所述字符为键盘 字符,则根据当前输入焦点标志,找到对应的模拟输入/输出单元,将所述键盘字符存储到该 模拟输入/输出单元对应的存储单元中,如果所述字符为状态字符,则对所述软键盘进行相应 的状态处理,如果所述字符为控制字符,则根据当前输入焦点标志,找到对应的模拟输入/输 出单元,并控制该模拟输入/输出单元根据所述控制字符重新绘制该模拟输入/输出单元的外 观,所述重新绘制该模拟输入/输出单元的外观包括移动光标和/或包括对该模拟输入/输出单 元内显示的内容和存储区内存储的内容进行删除的操作;
显示单元,用于在软键盘输入模式下,显示软键盘和所述多个模拟输入/输出单元;
所述存储模块包括
多个存储单元,用于存储用户通过标准键盘或软键盘输入的字符,所述多个存储单元与
所述多个标准输入/输出单元数目相等,且每个存储单元对应一对具有对应关系的标准输入/ 输出单元和模拟输入/输出单元。
所述主控模块还包括
切换单元,用于当接收到的鼠标点击消息为输入模式切换消息时,在软键盘输入模式和 标准键盘输入模式之间进行切换。 所述显示单元具体包括
判断子单元,用于判断当前输入模式是否为软键盘输入模式;
第一显示子单元,用于当所述判断子单元判断出当前输入模式为软键盘输入模式时,显 示所述软键盘和多个模拟输入/输出单元;
第二显示子单元,用于当所述判断子单元判断出当前输入模式为标准键盘输入模式时, 显示所述多个标准输入/输出单元。
所述主控模块还包括
第一标准键盘字符接收单元,用于在所述显示单元显示所述多个标准输入/输出单元后, 接收用户通过物理键盘输入的字符,根据当前输入焦点标志,找到对应的标准输入/输出单元, 并将所述字符存储到所述找到的标准输入/输出单元对应的存储单元中。
所述第二显示子单元具体用于当所述判断子单元判断出当前输入模式为标准键盘输入模式时,显示所述多个标准输入/输出单元,并显示所述软键盘;
所述软键盘单元还用于在根据鼠标点击的位置确定相应的字符后,在标准键盘输入模式 下,如果所述字符为键盘字符,则根据当前输入焦点标志,找到对应的标准输入/输出单元, 将所述确定的字符存储到所述找到的标准输入/输出单元对应的存储单元中,如果所述字符为 状态字符,则对所述软键盘进行相应的状态处理,如果所述字符为控制字符,则根据当前输 入焦点标志,找到对应的标准输入/输出单元,并控制该标准输入/输出单元根据所述控制字符 重新绘制该标准输入/输出单元的外观,所述重新绘制该标准输入/输出单元的外观包括移动光 标和/或包括对该标准输入/输出单元显示的内容和存储区内存储的内容进行删除的操作。
所述主控模块还包括
第二标准键盘字符接收单元,用于在软键盘输入模式下,接收用户通过物理键盘输入的 字符,根据当前输入焦点标志,找到对应的模拟输入/输出单元,并将所述字符存储到所述找 到的模拟输入/输出单元对应的存储单元中。
所述主控模块还包括
检査单元,用于定期检查当前的输入焦点,并根据所述当前的输入焦点所在的输入/输出 单元,将当前输入焦点标志设置为所述输入/输出单元的焦点标志。
所述软键盘单元还用于随机修改所述存储的坐标和字符的映射关系。 所述标准输入/输出单元为具有字符输入功能的窗口控件。 所述模拟输入/输出单元还包括 光标计算子单元,用于计算光标的位置。
所述模拟输入/输出单元还包括
绘图子单元,用于绘制所述模拟输入/输出单元的外观。 一种多输入焦点的软键盘输入方法,所述方法包括
在软键盘输入模式下,在指定的区域内,显示软键盘和多个模拟输入/输出单元,并为每 个模拟输入/输出单元设置对应的焦点标志;
主控模块接收到用户点击所述模拟输入/输出单元的鼠标点击消息,根据模拟输入/输出单 元与焦点标志的对应关系,将当前输入焦点标志设置为所述模拟输入/输出单元的焦点标志;
所述主控模块接收到用户点击所述软键盘的鼠标点击消息,控制软键盘单元根据鼠标点 击的位置确定对应的字符,并判断所述字符是键盘字符、控制字符、还是状态字符;
如果所述字符为键盘字符,则所述主控模块控制所述软键盘单元根据当前输入焦点标志, 找到对应的模拟输入/输出单元,在已有的多个存储单元中找到与所述找到的模拟输入/输出单元对应的存储单元,并将所述键盘字符存储到所述找到的存储单元中,所述多个存储单元与 所述多个模拟输入/输出单元数目相等,且一一对应;
如果所述字符为状态字符,则所述主控模块控制所述软键盘单元对所述软键盘进行相应 的状态处理;
如果所述字符为控制字符,则则所述主控模块控制所述软键盘单元根据当前输入焦点标 志,找到对应的模拟输入/输出单元,并控制该模拟输入/输出单元根据所述控制字'符重新绘制 该模拟输入/输出单元的外观,所述重新绘制该模拟输入/输出单元的外观包括移动光标和/或 包括对该模拟输入/输出单元内显示的内容和存储区内存储的内容进行删除的操作。
所述方法还包括
当所述主控模块接收到鼠标点击消息,且所述鼠标点击消息为输入模式切换消息时,所 述主控模块将当前软键盘输入模式更改为标准键盘输入模式。
所述在指定的区域内,显示软键盘和多个模拟输入/输出单元之前,还包括 主控模块判断当前输入模式是否为软键盘输入模式;
如果是,则执行在软键盘输入模式下,在指定的区域内,显示软键盘和多个模拟输入/输 出单元的步骤;
否则,所述主控模块显示多个标准输入/输出单元并接收鼠标点击消息,并判断鼠标点击 的是否为所述标准输入/输出单元,如果是,则所述主控模块将当前输入焦点标志设置为所述 标准输入/输出单元的焦点标志,所述多个标准输入/输出单元与所述多个模拟输入/输出单元 数目相等,且一一对应,并且所述多个存储单元中的每个存储单元对应一对具有对应关系的 标准输入/输出单元和模拟输入/输出单元。
所述主控模块将当前输入焦点标志设置为所述标准输入/输出单元的焦点标志之后,还包

所述主控模块接收用户通过物理键盘输入的字符,根据所述当前输入焦点标志找到对应 的标准输入/输出单元,在所述多个存储单元中找到与所述找到的标准输入/输出单元对应的存 储单元,并将所述字符存储到所述找到的存储单元中。
所述主控模块将当前输入焦点标志设置为所述标准输入/输出单元的焦点标志之后,还包

所述主控模块显示软键盘,并且用户通过鼠标点击所述软键盘;
所述主控模块控制所述软键盘单元根据鼠标点击的位置确定对应的字符,并判断所述字 符是键盘字符、控制字符、还是状态字符;如果所述字符为键盘字符,则所述主控模块控制所述软键盘单元根据当前输入焦点标志, 找到对应的标准输入/输出单元,并将所述键盘字符存储到所述找到的标准输入/输出单元对应
的存储单元中;
如果所述字符为状态字符,则所述主控模块控制所述软键盘单元对所述软键盘进行相应
的状态处理;
如果所述字符为控制字符,则所述主控模块控制所述软键盘单元根据当前输入焦点标志, 找到对应的标准输入/输出单元,并控制该标准输入/输出单元根据所述控制字符重新绘制该标 准输入/输出单元的外观,所述重新绘制该标准输入/输出单元的外观包括移动光标和/或包括 对该标准输入/输出单元显示的内容和存储区内存储的内容进行删除的操作。
所述判断鼠标点击的是否为标准输入/输出单元之后,还包括
如果所述鼠标点击消息为输入模式切换消息,则所述主控模块将当前标准键盘输入模式 更改为软键盘输入模式。
所述将当前输入焦点标志设置为所述模拟输入/输出单元的焦点标志之后,还包括
所述主控模块接收所述用户通过物理键盘输入的字符,根据所述当前输入焦点标志,找 到对应的模拟输入/输出单元,并将所述字符存储到与所述找到的模拟输入/输出单元对应的存 储单元中。
所述方法还包括
所述主控模块定期检査当前的输入焦点,并根据所述当前的输入焦点所在的输入/输出单 元,将当前输入焦点标志设置为所述输入/输出单元的焦点标志。 所述方法还包括
所述软键盘单元随机修改已有的鼠标点击位置与字符的映射关系。
本发明实施例提供的技术方案的有益效果是解决了现有技术的不足,多个输出控件共 用一个软键盘,结构更简单,运行更稳定,从而更好地满足实际需要,提供更完善而安全的 人机交互体验。


图1是本发明实施例1提供的多输入焦点的软键盘输入方法流程图; 、 图2是本发明实施例2提供的多输入焦点的软键盘输入装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进 一步地详细描述。本发明实施例提供了一种多输入焦点的软键盘输入方法,包括在软键盘输入模式下,在指定的区域内,显示软键盘和多个模拟输入/输出单、元,并为每 个模拟输入/输出单元设置对应的焦点标志;主控模块接收到用户点击所述模拟输入/输出单元的鼠标点击消息,根据模拟输入/输出单 元与焦点标志的对应关系,将当前输入焦点标志设置为所述模拟输入/输出单元的焦点标志;所述主控模块接收到用户点击所述软键盘的鼠标点击消息,控制软键盘单元根据鼠标点 击的位置确定对应的字符,并判断所述字符是键盘字符、控制字符、还是状态字符;如果所述字符为键盘字符,则所述主控模块控制所述软键盘单元根据当前输入焦点标志, 找到对应的模拟输入/输出单元,在已有的多个存储单元中找到与所述找到的模拟输入/输出单 元对应的存储单元,并将所述键盘字符存储到所述找到的存储单元中,所述多个存储单元与 所述多个模拟输入/输出单元数目相等,且一一对应;如果所述字符为状态字符,则所述主控模块控制所述软键盘单元对所述软键盘进行相应 的状态处理;如果所述字符为控制字符,则所述主控模块控制所述软键盘单元根据当前输入焦点标志, 找到对应的模拟输入/输出单元,并控制该模拟输入/输出单元根据所述控制字符重新绘制该模 拟输入/输出单元的外观,所述重新绘制该模拟输入/输出单元的外观包括移动光标和/或包括 对该模拟输入/输出单元内显示的内容和存储区内存储的内容进行删除的操作。实施例1参见图1,本发明实施例提供了一种多输入焦点的软键盘输入方法,步骤101:主控模块判断当前输入模式是否为软键盘输入模式,如果是,则执行步骤102, 否则,执行步骤lll;步骤102:在指定的区域内,主控模块显示软键盘和多个模拟输入/输出单元,并且为每 个模拟输入/输出单元设置对应的焦点标志;通常,软键盘以子窗口的形式显示在指定的区域 内,而且在软键盘输入模式下,主控模块还可以隐藏标准输入/输出单元,即不显示标准输入 /输出单元给用户;其中,模拟输入/输出单元通常具有绘制功能,可以绘制模拟输入/输出单元的外观,在用 户向模拟输入/输出单元内输入字符时,该模拟输入/输出单元还可以在显示框内绘制符号,如圆点或者*,来模拟字符输入;另外,还可以在光标区指定的位置画一条反色竖线,模拟输入光标;以固定的时间间隔在光标区指定的位置,轮流绘制反色竖线和同色竖线,模拟光标的 闪烁等等。另外,模拟输入/输出单元还具有计算光标位置的功能,随着输入的字符移动,可以自动 计算光标的位置,如输入字符增加时,计算出光标向右移动的位置,删除输入字符时,计算 出光标向左移动等等,当鼠标点击到模拟输入/输出单元时,计算出光标移动到鼠标点击的位 置等等。 、步骤103:主控模块接收鼠标点击消息(WM—BUTTONDOWN),并判断鼠标点击的是 模拟输入/输出单元、输入模式切换键还是操作结束键,如果鼠标点击的是上述多个模拟输入 /输出单元中的一个模拟输入/输出单元,则执行步骤104;如果鼠标点击的是软键盘,则执行 步骤105;如果鼠标点击的是输入模式切换键,则执行步骤109;如果鼠标点击的是操作结束 键,则执行步骤110;步骤104:主控模块将当前输入焦点标志设置为鼠标点击的模拟输入/输出单元的焦点标 志,然后返回步骤103;步骤105:主控模块控制软键盘单元根据鼠标点击的位置确定对应的字符,并判断该字符是键盘字符、控制字符、还是状态字符,如果为键盘字符,则执行步骤106,如果为状态 字符,则执行步骤107,如果为控制字符,则执行步骤108;其中,软键盘单元预先存储有当前软键盘的坐标和字符的映射关系,即鼠标点击屏幕上 的不同坐标时,对应输入不同的字符,该字符包括键盘字符和状态字符。键盘字符包括字母和数字,状态字符是指除键盘字符以外的其它字符,如shift键、CapsLock键等等。步骤106:主控模块控制软键盘单元根据当前输入焦点标志,找到对应的模拟输入/输出 单元,并在已有的多个存储单元中找到与该找到的模拟输入/输出单元对应的存储单元,将该键盘字符存储到找到的存储单元中,然后返回步骤103;本实施例中,标准输入/输出单元和模拟输入/输出单元均为多个,且数目相同, 一一对应, 而且每对具有对应关系的标准输入/输出单元和模拟输入/输出单元,都对应一个存储单元,即 具有共用的存储单元,该共用的存储单元用来存储用户向标准输入/输出单元或模拟输入/输出 单元输入的字符,无论用户向标准输入/输出单元输入字符,还是向模拟输入/输出单元输入字符,都会保存在该共用的存储单元中。例如,用户通过标准键盘输入了字符AB,然后又通过 软键盘输入了字符CD,则该共用的存储单元中会保存有字符ABCD。步骤107:主控模块控制软键盘单元根据该状态字符,对软键盘进行相应的状态处理,然后返回步骤103; '例如,状态字符为CapsLock键,则软键盘单元重新绘制软键盘,其中显示的字母均为大 写字母,通常新绘制的软键盘的坐标和字符的映射关系,与原来的软键盘的坐标和字符的映 射关系不同,绘制新的软键盘后,后续的处理均根据该新软键盘的坐标和字符的映射关系进 行处理。步骤108:主控模块控制软键盘单元,根据当前输入焦点标志,找到对应的模拟输入/输出单元,并控制该模拟输入/输出单元根据该控制字符重新绘制该模拟输入/输出单元的外观, 所述重新绘制该模拟输入/输出单元的外观包括移动光标和/或包括对该模拟输入/输出单元内显示的内容和存储区内存储的内容进行删除的操作,然后返回步骤103;本实施例中,控制字符是指对光标位置进行控制的字符,包括退格、左移、右移、Home 和End等等,根据该控制字符重新绘制模拟输入输出单元的外观,可以在该模拟输入/输出单 元上显示出光标位置的变化(包括左移和右移)、以及显示内容和存储区存储内容的变化(删 除)。例如,当控制字符为左移时,重新绘制该模拟输入/输出单元的外观,使得光标位置左 移一位;当控制字符为End键时,重新绘制该模拟输入/输出单元的外观,使得光标位置移到 当前字符串的末尾;当控制字符是退格键时,将光标所在位置的字符从存储单元中删除,并 且光标位置左移一位,再根据存储单元的内容重新绘制字符串或圆点串。在本实施例中,在 模拟输入/输出单元中绘制和显示的内容用圆点串来表示。步骤109:主控模块将当前软键盘输入模式更改为标准键盘输入模式,然后返回步骤101。步骤110:主控模块停止操作,流程结束。步骤111:当前为标准键盘输入模式,主控模块显示多个标准输入/输出单元,并接收鼠标点击消息,并判断鼠标点击的是标准输入/输出单元、输入模式切换键还是操作结束键,如果是标准输入/输出单元,则执行步骤112;如果是输入模式切换键,则执行步骤114;如果 是操作结束键,则执行步骤110;通常,在标准键盘输入模式下,主控模块也可以隐藏模拟输入/输出单元,即不显示模拟 输入/输出单元给用户。步骤112:主控模块将当前输入焦点标志设置为标准输入/输出单元的焦点标志; 步骤113:主控模块接收用户通过物理键盘输入的字符,根据当前输入焦点标志,找到 对应的标准输入/输出单元,即用户点击的标准输入/输出单元,并在所述多个存储^^元中找到 与用户点击的标准输入/输出单元对应的存储单元,将该字符存储到找到的存储单元中,然后 返回步骤111;本实施例中,除了上述在标准输入模式下,主控模块将用户通过物理键盘向标准输入/输出单元输入的字符存储到相应的存储单元的方式外,还可以采用在标准输入模式下,将用户 通过软键盘向标准输入/输出单元输入的字符存储到相应的存储单元的方式,即步骤113可以 由以下步骤替换主控模块显示软键盘,用户通过鼠标点击该软键盘,主控模块控制软键盘单元根据鼠标 点击的位置确定对应的字符,并判断对应的字符是键盘字符还是状态字符;如果对应的字符 为键盘字符,则主控模块控制软键盘单元,根据当前输入焦点标志,找到对应的标准输入/输 出单元,并在所述多个存储单元中找到与该找到的标准输入/输出单元对应的存储单元,将该 键盘字符存储到找到的存储单元中;如果对应的字符为状态字符,则主控模块控制软键盘单 元对软键盘进行相应的状态处理;如果对应的字符为控制字符,则主控模块控制软键盘单元, 根据当前输入焦点标志,找到对应的标准输入/输出单元,并控制该标准输入/输出单元根据该 控制字符重新绘制该标准输入/输出单元的外观,所述重新绘制该标准输入/输出单元的外观包 括移动光标和/或包括对该标准输入/输出单元显示的内容和存储区存储内容进行删除的操作, 然后返回步骤111。在本实施例中,在标准输入/输出单元中绘制并显示的内容用字符串来表 示,对该显示的内容进行增加或删除是指增加字符串或删除字符串。步骤114:主控模块将当前标准键盘输入模式更改为软键盘输入模式,然后返回歩骤101。进一步地,上述方法还包括-主控模块定期检査当前的输入焦点,并根据当前的输入焦点所在的输入/输出单元,将当 前输入焦点标志设置为输入/输出单元的焦点标志。例如,以预设的时间间隔触发MFC定时 消息(WM一TIMER),主控模块收到该消息后,检查当前的输入焦点,并根据当前的输入焦 点所在的输入/输出单元,将当前输入焦点标志设置为输入/输出单元的焦点标志。另外,本实施例中,软键盘单元还可以随时随机修改已存储的坐标与字符的映射关系, 从而可以进一步提高安全性。本实施例中,主控模块由窗口界面和windows消息处理程序组成,windows消息处理程 序通过windows函数DialogBox与窗口界面绑定。另夕卜,windows消息处理程序通过windows 函数SetWindowLang和GetWindowLang与控件绑定,代替MFC预定义的缺省消息映射。输 入模式的切换可以由主控模块窗口中的CheckBox控件来实现,标准输入/输出单元可以为主 控模块窗口中的Edit控件,模拟输入/输出单元可以是以不具有输入功能的Button控件为基 础的自绘控件和自定义的windows消息处理程序组成,由于Button控件不具备输入功能,因 此模拟输入/输出单元不存在MFC所定义的输入焦点。另外,本实施例中,在软键盘输入模式下,除了上述主控模块控制软键盘单元将用户通过软键盘向模拟输入/输出单元输入的字符存储到相应的存储单元的方式外,还可以采用在软 键盘输入模式下,由主控模块将用户通过物理键盘向模拟输入/输出单元输入的字符存储到相 应的存储单元的方式,即步骤105 107还可以由以下步骤替换主控模块接收用户通过物理键盘输入的字符,根据当前输入焦点标志,找到对应的模拟 输入/输出单元,在所述多个存储单元中找到该找到的模拟输入/输出单元对应的存储单元,并将该字符存储到找到的存储单元中。 -本实施例中,主控模块可以处理的windows消息有很多种,下面举例说明 INT一PTR CALLBACK MyWndProc(HWND hWnd,丽T message,WPARAMwParam,LPARAM lParam)UINT wmld, wmEvent; switch (message)case WM—INITDIALOG: 〃对话框初始化 OnMylnitDialog (); breakscase WM_COMMAND:碰Id = LOWORD(wParam); 碰Event = HIWORD(wParam); switch (wmld)〃点击"确定" case IDOK:OnMyOK();breaks 〃点击"取消" case IDCANCEL:OnMyCancel();break; 〃切换输入模式 case IDC—CHECK:OnMyCheck();break;〃输入密码 case IDC—EDIT:if(糧Event == EN_CHANGE) OnMyChangeEdit ();break; default:break;break;〃控件自绘case WM一DRAWITEM: OnMyDrawItem(wParam,lParam); break;〃鼠标点击case WM—LBUTTONDO丽OnMyLButtonDown (wParam,lParam);break; 〃界面刷新 case WM一SHOWWINDOW: OnMy Sho wWindow(); break;〃界面绘制case WM一PAINT:OnMyPaint();breaks 〃界面销毁 case WM_DESTROY:OnMyDestroy ();break; 〃休眠唤醒case WM—POWERBROADCAST:OnMyPo werBroadcast();break; default:break;return DefWindowProc(hWnd, message, wParam, 1Param); 实施例2参见图2,本发明实施例还提供了一种多输入焦点的软键盘输入装置,包括主控模块200 和存储模块300;主控模块200包括多个标准输入/输出单元201,用于接收鼠标点击消息;多个模拟输入/输出单元202,用于接收鼠标点击消息,该多个标准输入/输出单元201与 该多个模拟输入/输出单元202数目相等,且一一对应;输入焦点标志设置单元203,用于当标准输入/输出单元201被鼠标点击时,根据标准输 入/输出单元201与焦点标志的对应关系,将当前输入焦点标志设置为标准输入/输出单元201 的焦点标志,当模拟输入/输出单元202被鼠标点击时,根据模拟输入/输出单元202与焦点标 志的对应关系,将当前输入焦点标志设置为模拟输入/输出单元202的焦点标志;软键盘单元204,用于存储坐标与字符之间的映射关系,并在有用户点击软键盘的鼠标 点击消息时,根据鼠标点击的位置确定相应的字符,在软键盘输入模式下,如果该字符为键 盘字符,则根据当前输入焦点标志,找到对应的模拟输入/输出单元202,将该键盘字符存储 到与该找到的模拟输入/输出单元202对应的存储单元中,如果该字符为状态字符,则对软键 盘进行相应的状态处理,如果该字符为控制字符,则根据当前输入焦点标志,找到对应的模 拟输入/输出单元,并控制该模拟输入/输出单元根据该控制字符重新绘制该模拟输入/输出单 元的外观,所述重新绘制该模拟输入/输出单元的外观包括移动光标和/或包括对该模拟输入/ 输出单元内显示的内容和存储区存储内容进行删除的操作;显示单元205,用于在软键盘输入模式下,显示软键盘和多个模拟输入/输出单元202;存储模块300包括多个存储单元301,用于存储用户通过标准键盘或软键盘输入的字符,该多个存储单元 与所述多个标准输入/输出单元数目相等,且每个存储单元对应一对具有对应关系的标准输入 /输出单元和模拟输入/输出单元。其中,模拟输入/输出单元202通常具有绘制功能,在用户向模拟输入/输出单元202内输 入字符时,该模拟输入/输出单元202还可以在显示框内绘制符号,如圆点或者*,来模拟字符输入;另外,还可以在光标区指定的位置画一条反色竖线,模拟输入光标;以固定的时间 间隔在光标区指定的位置,轮流绘制反色竖线和同色竖线,模拟光标的闪烁等等。 进一步地,主控模块200还包括切换单元,用于当接收到的鼠标点击消息为输入模式切换消息时,软键盘输入模式和标 准键盘输入模式之间进行切换。本实施例中,显示单元205具体包括 ..判断子单元,用于判断当前输入模式是否为软键盘输入模式;第一显示子单元,用于当判断子单元判断出当前输入模式为软键盘输入模式时,显示软键盘和所述多个模拟输入/输出单元202;第二显示子单元,用于当判断子单元判断出当前输入模式为标准键盘输入模式时,显示所述多个标准输入/输出单元201。本实施例中,当显示单元包括判断子单元、第一显示子单元和第二显示子单元时,主控模块200可以在标准键盘输入模式下,接收用户通过物理键盘输入的字符,即主控模块200还可以包括第一标准键盘字符接收单元,用于在显示单元206显示所述多个标准输入/输出单元201 后,接收用户通过物理键盘输入的字符,根据当前输入焦点标志,找到对应的标准输入/输出 单元201,将该字符存储到与所述找到的标准输入/输出单元201对应的存储单元301中。本实施例中的第二显示子单元可以具体用于当判断子单元判断出当前输入模式为标准键 盘输入模式时,显示所述多个标准输入/输出单元201,并显示软键盘;相应地,软键盘单元 204还用于在根据鼠标点击的位置确定相应的字符后,在标准键盘输入模式下,如果确定的 字符为键盘字符,则根据当前输入焦点标志,找到对应的标准输入/输出单元201,将确定的 字符存储到找到的标准输入/输出单元201对应的存储单元301中,如果确定的字符为状态字 符,则对软键盘进行相应的状态处理,如果确定的字符为控制字符,则根据当前输入焦点标 志,找到对应的标准输入/输出单元,并控制该标准输入/输出单元根据该控制字符重新绘制该 标准输入/输出单元的外观,所述重新绘制该标准输入/输出单元的外观包括移动光标和/或包 括对该标准输入/输出单元和存储区存储内容进行删除的操作。在本实施例中,在模拟输入/输出单元中绘制和显示的内容用圆点串来表示,在标准输入 /输出单元中绘制和显示的内容用字符串来表示。本实施例中,控制字符是指对光标位置进行 控制的字符,包括退格、左移、右移、Home和End等等,根据该控制字符重新绘制模拟输 入输出单元的外观,可以在该模拟输入/输出单元上显示出光标位置的变化(包括左移和右移)、以及显示内容和存储区存储内容的变化(包括增加和删除),具体同实施例1中的描述, 此处不再赘述。另外,本实施例中,在软键盘输入模式下,主控模块200还可以接收用户通过物理键盘 输入的字符,即主控模块200还包括第二标准键盘字符接收单元,用于在软键盘输入模式下,接收用户通过物理键盘输入的 字符,根据当前输入焦点标志,找到对应的模拟输入/输出单元202,并将该字符存储到与所 述找到的模拟输入/输出单元202对应的存储单元301中。本实施例中,主控模块200还包括检査单元,用于定期检查当前的输入焦点,并根据当前的输入焦点所在的输入/输出单元, 将当前输入焦点标志设置为输入/输出单元的焦点标志。例如,以预设的时间间隔触发MFC 定时消息(WM—TIMER),检查单元收到该消息后,检查当前的输入焦点,并根据当前的输 入焦点所在的输入/输出单元,将当前输入焦点标志设置为输入/输出单元的焦点标志。进一步地,软键盘单元204还用于随机修改已存储的坐标和字符的映射关系。本实施例中的标准输入/输出单元201可以为具有字符输入功能的窗口控件。进一步地,模拟输入/输出单元202还包括光标计算子单元,用于计算光标的位置。如随着输入的字符移动,自动计算光标的位置, 输入字符增加时,计算出光标向右移动的位置,删除输入字符时,计算出光标向左移动的位 置等等,当鼠标点击到模拟输入/输出单元202时,计算出光标移动到鼠标点击的位置等等。本实施例中,模拟输入/输出单元202还包括主控模块由窗口界面和windows消息处理程序组成,windows消息处理程序通过windows 函数DialogBox与窗口界面绑定。另外,windows消息处理程序通过windows函数 SetWindowLang和GetWindowLang与控件绑定,代替MFC预定义的缺省消息映射。输入模 式的切换可以由主控模块窗口中的CheckBox控件来实现,标准输入/输出单元可以为主控模 块窗口中的Edit控件,模拟输入/输出单元可以是以不具有输入功能的Button控件为基础的 自绘控件和自定义的windows消息处理程序组成,由于Button控件不具备输入功能,因此模 拟输入/输出单元不存在MFC所定义的输入焦点。本发明实施例解决了现有技术的不足,多个输出控件共用一个软键盘,结构更简单,运 行更稳定,从而更好地满足实际需要,提供更完善而安全的人机交互体验。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之 内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种多输入焦点的软键盘输入装置,其特征在于,所述装置包括主控模块和存储模块;所述主控模块包括多个标准输入/输出单元,用于接收鼠标点击消息;多个模拟输入/输出单元,用于接收鼠标点击消息,所述多个模拟输入/输出单元与所述多个标准输入/输出单元数目相等,且一一对应;输入焦点标志设置单元,用于当所述标准输入/输出单元被鼠标点击时,根据标准输入/输出单元与焦点标志的对应关系,将当前输入焦点标志设置为所述标准输入/输出单元的焦点标志;当所述模拟输入/输出单元被鼠标点击时,根据模拟输入/输出单元与焦点标志的对应关系,将当前输入焦点标志设置为所述模拟输入/输出单元的焦点标志;软键盘单元,用于存储坐标与字符之间的映射关系,并在有用户点击软键盘的鼠标点击消息时,根据鼠标点击的位置确定相应的字符,在软键盘输入模式下,如果所述字符为键盘字符,则根据当前输入焦点标志,找到对应的模拟输入/输出单元,将所述键盘字符存储到该模拟输入/输出单元对应的存储单元中;如果所述字符为状态字符,则对所述软键盘进行相应的状态处理;如果所述字符为控制字符,则根据当前输入焦点标志,找到对应的模拟输入/输出单元,并控制该模拟输入/输出单元根据所述控制字符重新绘制该模拟输入/输出单元的外观,所述重新绘制该模拟输入/输出单元的外观包括移动光标和/或包括对该模拟输入/输出单元内显示的内容和存储区内存储的内容进行删除的操作;显示单元,用于在软键盘输入模式下,显示软键盘和所述多个模拟输入/输出单元;所述存储模块包括多个存储单元,用于存储用户通过标准键盘或软键盘输入的字符,所述多个存储单元与所述多个标准输入/输出单元数目相等,且每个存储单元对应一对具有对应关系的标准输入/输出单元和模拟输入/输出单元。
2. 根据权利要求1所述的多输入焦点的软键盘输入装置,其特征在于,所述主控模块还 包括切换单元,用于当接收到的鼠标点击消息为输入模式切换消息时,在软键盘输入模式和 标准键盘输入模式之间进行切换。 .
3. 根据权利要求1所述的多输入焦点的软键盘输入装置,其特征在于,所述显示单元具 体包括判断子单元,用于判断当前输入模式是否为软键盘输入模式;第一显示子单元,用于当所述判断子单元判断出当前输入模式为软键盘输入模式时,显 示所述软键盘和多个模拟输入/输出单元;第二显示子单元,用于当所述判断子单元判断出当前输入模式为标准键盘输入模式时, 显示所述多个标准输入/输出单元。
4. 根据权利要求3所述的多输入焦点的软键盘输入装置,其特征在于,所述主控模块还 包括第一标准键盘字符接收单元,用于在所述显示单元显示所述多个标准输入/输出单元后, 接收用户通过物理键盘输入的字符,根据当前输入焦点标志,找到对应的标准输入/输出单元, 并将所述字符存储到所述找到的标准输入/输出单元对应的存储单元中。
5. 根据权利要求3所述的多输入焦点的软键盘输入装置,其特征在于,所述第二显示子 单元具体用于当所述判断子单元判断出当前输入模式为标准键盘输入模式时,显示所述多个 标准输入/输出单元,并显示所述软键盘;所述软键盘单元还用于在根据鼠标点击的位置确定相应的字符后,在标准键盘输入模式 下,如果所述字符为键盘字符,则根据当前输入焦点标志,找到对应的标准输入/输出单元, 将所述确定的字符存储到所述找到的标准输入/输出单元对应的存储单元中;如果所述字符为 状态字符,则对所述软键盘进行相应的状态处理;如果所述字符为控制字符,则根据当前输 入焦点标志,找到对应的标准输入/输出单元,并控制该标准输入/输出单元根据所述控制字符 重新绘制该标准输入/输出单元的外观,所述重新绘制该标准输入/输出单元的外观包括移动光 标和/或包括对该标准输入/输出单元显示的内容和存储区内存储的内容进行删除的操作。
6. 根据权利要求l所述的多输入焦点的软键盘输入装置,其特征在于,所述^fe控模块还包括第二标准键盘字符接收单元,用于在软键盘输入模式下,接收用户通过物理键盘输入的 字符,根据当前输入焦点标志,找到对应的模拟输入/输出单元,并将所述字符存储到所述找 到的模拟输入/输出单元对应的存储单元中。
7. 根据权利要求l所述的多输入焦点的软键盘输入装置,其特征在于,所述主控模块还 包括检査单元,用于定期检查当前的输入焦点,并根据所述当前的输入焦点所在的输入/输出 单元,将当前输入焦点标志设置为所述输入/输出单元的焦点标志。
8. 根据权利要求1所述的多输入焦点的软键盘输入装置,其特征在于,所述软键盘单元 还用于随机修改所述存储的坐标和字符的映射关系。
9. 根据权利耍求1所述的多输入焦点的软键盘输入装置,其特征在于,所述标准输入/ 输出单元为具有字符输入功能的窗口控件。
10. 根据权利要求l所述的多输入焦点的软键盘输入装置,其特征在于,所述模拟输入/ 输出单元还包括-光标计算子单元,用于计算光标的位置。
11. 根据权利要求l所述的多输入焦点的软键盘输入装置,其特征在于,所述模拟输入/ 输出单元还包括绘图子单元,用于绘制所述模拟输入/输出单元的外观。
12. —种多输入焦点的软键盘输入方法,其特征在于,所述方法包括 在软键盘输入模式下,在指定的区域内,显示软键盘和多个模拟输入/输出单元,并为每个模拟输入/输出单元设置对应的焦点标志;主控模块接收到用户点击所述模拟输入/输出单元的鼠标点击消息,根据模拟输入/输出单 元与焦点标志的对应关系,将当前输入焦点标志设置为所述模拟输入/输出单元的焦点标志;所述主控模块接收到用户点击所述软键盘的鼠标点击消息,控制软键盘单元根据鼠标点 击的位置确定对应的字符,并判断所述字符是键盘字符、控制字符、还是状态字符;如果所述字符为键盘字符,则所述主控模块控制所述软键盘单元根据当前输入焦点标志, 找到对应的模拟输入/输出单元,在已有的多个存储单元中找到与所述找到的模拟输入/输出单 元对应的存储单元,并将所述键盘字符存储到所述找到的存储单元中,所述多个存储单元与所述多个模拟输入/输出单元数目相等,且一一对应;如果所述字符为状态字符,则所述主控模块控制所述软键盘单元对所述软键盘进行相应 的状态处理;如果所述字符为控制字符,则所述主控模块控制所述软键盘单元根据当前输入焦点标志, 找到对应的模拟输入/输出单元,并控制该模拟输入/输出单元根据所述控制字符重新绘制该模 拟输入/输出单元的外观,所述重新绘制该模拟输入/输出单元的外观包括移动光标和/或包括 对该模拟输入/输出单元内显示的内容和存储区内存储的内容进行删除的操作。
13. 根据权利要求12所述的多输入焦点的软键盘输入方法,其特征在于,所述方法还包括当所述主控模块接收到鼠标点击消息,且所述鼠标点击消息为输入模式切换消息时,所 述主控模块将当前软键盘输入模式更改为标准键盘输入模式。
14. 根据权利要求12所述的多输入焦点的软键盘输入方法,其特征在于,所述在指定的 区域内,显示软键盘和多个模拟输入/输出单元之前,还包括主控模块判断当前输入模式是否为软键盘输入模式;如果是,则执行在软键盘输入模式下,在指定的区域内,显示软键盘和多个模拟输入/输 出单元的步骤;否则,所述主控模块显示多个标准输入/输出单元并接收鼠标点击消息,并判断鼠标点击 的是否为所述标准输入/输出单元,如果是,则所述主控模块将当前输入焦点标志设置为所述 标准输入/输出单元的焦点标志,所述多个标准输入/输出单元与所述多个模拟输入/输出单元 数目相等,且一一对应,并且所述多个存储单元中的每个存储单元对应一对具有对应关系的 标准输入/输出单元和模拟输入/输出单元。
15. 根据权利要求14所述的多输入焦点的软键盘输入方法,其特征在于,所述主控模块 将当前输入焦点标志设置为所述标准输入/输出单元的焦点标志之后,还包括所述主控模块接收用户通过物理键盘输入的字符,根据所述当前输入焦点标志找到对应 的标准输入/输出单元,在所述多个存储单元中找到与所述找到的标准输入/输出单元对应的存 储单元,并将所述字符存储到所述找到的存储单元中。
16. 根据权利要求14所述的多输入焦点的软键盘输入方法,其特征在于,所述主控模块 将当前输入焦点标志设置为所述标准输入/输出单元的焦点标志之后,还包括、所述主控模块显示软键盘,并且用户通过鼠标点击所述软键盘;所述主控模块控制所述软键盘单元根据鼠标点击的位置确定对应的字符,并判断所述字 符是键盘字符、控制字符、还是状态字符;如果所述字符为键盘字符,则所述主控模块控制所述软键盘单元根据当前输入焦点标志, 找到对应的标准输入/输出单元,并将所述键盘字符存储到所述找到的标准输入/输出单元对应 的存储单元中;如果所述字符为状态字符,则所述主控模块控制所述软键盘单元对所述软键盘进行相应 的状态处理;如果所述字符为控制字符,则则所述主控模块控制所述软键盘单元根据当前输入焦点标 志,找到对应的标准输入/输出单元,并控制该标准输入/输出单元根据所述控制字符重新绘制 该标准输入/输出单元的外观,所述重新绘制该标准输入/输出单元的外观包括移动光标和/或 包括对该标准输入/输出单元显示的内容和存储区内存储的内容进行删除的操作。
17. 根据权利要求14所述的多输入焦点的软键盘输入方法,其特征在于,所述判断鼠标 点击的是否为标准输入/输出单元之后,还包括如果所述鼠标点击消息为输入模式切换消息,则所述主控模块将当前标准键盘输入模式 更改为软键盘输入模式。
18. 根据权利要求12所述的多输入焦点的软键盘输入方法,其特征在于,所述将当前输 入焦点标志设置为所述模拟输入/输出单元的焦点标志之后,还包括所述主控模块接收所述用户通过物理键盘输入的字符,根据所述当前输入焦点标志,找 到对应的模拟输入/输出单元,并将所述字符存储到与所述找到的模拟输入/输出单元对应的存 储单元中。
19. 根据权利要求12所述的多输入焦点的软键盘输入方法,其特征在于,所述方法还包括所述主控模块定期检査当前的输入焦点,并根据所述当前的输入焦点所在的输入/输出单 元,将当前输入焦点标志设置为所述输入/输出单元的焦点标志。
20.根据权利要求12所述的多输入焦点的软键盘输入方法,其特征在于,所述方法还包括所述软键盘单元随机修改已有的鼠标点击位置与字符的映射关系。
全文摘要
本发明公开了一种多输入焦点的软键盘输入装置和方法,属于信息安全领域。所述装置包括主控模块和存储模块。所述方法包括软键盘输入模式下,显示软键盘和多个模拟输入/输出单元,并设置对应的焦点标志;用户点击模拟输入/输出单元,主控模块将当前输入焦点标志设置为该单元的焦点标志;用户点击软键盘,主控模块控制软键盘单元根据光标位置确定对应的字符,如果为键盘字符,则根据当前输入焦点标志对应的模拟输入/输出单元,将该键盘字符存储到与该模拟输入/输出单元对应的存储单元中;如果为状态字符,则对软键盘进行相应的状态处理;如果为控制字符,则重新绘制当前模拟输入/输出单元的外观。本发明提高了软键盘输入的安全性。
文档编号G06F3/048GK101403957SQ20081022688
公开日2009年4月8日 申请日期2008年11月19日 优先权日2008年11月19日
发明者于华章, 舟 陆 申请人:北京飞天诚信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1