一种按键序列检测方法及装置与流程

文档序号:31630955发布日期:2022-09-24 01:57阅读:120来源:国知局
一种按键序列检测方法及装置与流程

1.本技术涉及系统检测领域,具体而言,涉及一种按键序列检测方法及装置。


背景技术:

2.目前,在涉及软件与用户之间通过键盘等输入设备进行交互的使用场景中,软件通常需要根据用户输入的具有一定含义的且符合一定要求的按键组合来触发软件的一些特定功能,如windows中使用ctrl+alt+delete组合按键序列触发windows的任务管理器功能。软件为了实现用户通过输入符合条件的按键序列触发特定的软件功能,通常需要进行按键序列检测。但是按键检测场景以及要求随着用户需求变化较大,目前尚且没有一种通用的按键序列检测方法,来实现绝大部分场景下的按键检测需求。


技术实现要素:

3.本技术实施例的目的在于提供一种按键序列检测方法及装置,用以实现绝大部分场景下的按键检测需求,从而有效提升编码效率,避免重复编码工作。
4.本技术实施例第一方面提供了一种按键序列检测方法,包括:
5.检测用户输入的按键信息;所述按键信息包括按键值和系统时间戳;
6.将所述按键信息添加至按键序列组,得到新的按键序列组;
7.判断预设序列组库中是否存在与所述按键序列组相匹配的预设序列组;
8.当所述预设序列组库中存在与所述按键序列组相匹配的所述预设序列组时,判断所述按键序列组是否等同于所述预设序列组;
9.当所述按键序列组等同于所述预设序列组时,执行与所述预设序列组相对应的业务流程。
10.在上述实现过程中,该方法可以优先检测用户输入的包括按键值和系统时间戳的按键信息,从而实现实时对用户操作的记录,进而便于后续按键序列的检测判断;然后,该方法可以将所述按键信息添加至按键序列组,得到新的按键序列组,从而实现对按键序列组的实时更新,并将判断对象从按键转换为按键序列组,进而实现对传统方式的改进;再后,该方法可以判断预设序列组库中是否存在与所述按键序列组相匹配的预设序列组,从而能够实现预设序列组的先行判断,进而得到初步判断结果,并通过初步判断结果来实现按键序列的初步检测;再后,当所述预设序列组库中存在与所述按键序列组相匹配的所述预设序列组时,判断所述按键序列组是否等同于所述预设序列组,从而实现按键序列组的准确判断,进而保障按键序列的检测准确有效;最后,当所述按键序列组等同于所述预设序列组时,执行与所述预设序列组相对应的业务流程,此步骤能够实现按键序列检测后的流程执行。
11.进一步地,所述方法还包括:
12.根据业务需求创建业务流程;
13.构建与所述业务流程相对应的预设序列组;
14.根据所述预设序列组,创建预设序列组库。
15.在上述实现过程中,该方法可以根据业务需求创建业务流程,从而实现业务流程的前置预存;然后,该方法再构建与所述业务流程相对应的预设序列组,实现对标序列组的构建,从而为后续的检测提供基础依据;最后,该方法根据所述预设序列组,创建预设序列组库,从而实现预设序列组库的多序列共存,进而便于查表与扩容。
16.进一步地,所述将所述按键信息添加至按键序列组,得到新的按键序列组的步骤包括:
17.通过尾插法将所述按键信息添加至按键序列组的尾部,得到新的按键序列组。
18.在上述实现过程中,该方法可以通过尾插法对按键信息进行处理,从而使得得到的按键序列组中的按键信息有序递进,从而便于后续步骤可以基于该序列中的次序进行自动化的合理判定,进而得到更准确的检测按键序列结果。
19.进一步地,所述方法还包括:
20.当所述预设序列组库中不存在与所述按键序列组相匹配的所述预设序列组时,删除所述按键序列组中的头部元素,并触发执行所述判断预设序列组库中是否存在与所述按键序列组相匹配的预设序列组的步骤;其中,所述头部元素为所述按键序列组中位于头部的按键信息。
21.在上述实现过程中,该方法可以将具有次序关系的按键信息视作序列元素,并依据按键信息的插入顺序进行相应判断,从而使得判断未通过的时候自动处理头部元素,从而保障按键序列组的实时有效性,避免无效按键序列组占用检测的存储空间,影响检测效率与效果。
22.进一步地,所述方法还包括:
23.当所述按键序列组不等同于所述预设序列组时,删除所述按键序列组中的头部元素,并触发执行所述判断预设序列组库中是否存在与所述按键序列组相匹配的预设序列组的步骤;其中,所述头部元素为所述按键序列组中位于头部的按键信息。
24.在上述实现过程中,该方法可以将具有次序关系的按键信息视作序列元素,并依据按键信息的插入顺序进行相应判断,从而使得判断未通过的时候自动处理头部元素,从而保障按键序列组的实时有效性,避免无效按键序列组占用检测的存储空间,影响检测效率与效果。
25.进一步地,所述判断预设序列组库中是否存在与所述按键序列组相匹配的预设序列组的步骤包括:
26.提取所述按键序列组中的按键组首位元素,并提取预设序列组库中预设序列组的预设组首位元素;所述按键组首位元素为所述按键序列组中的头部元素,所述预设组首位元素为所述预设序列组中的头部元素;
27.判断所述预设组首位元素中是否存在所述按键组首位元素;
28.当所述预设组首位元素中存在所述按键组首位元素时,提取所述按键序列组中的按键组次位元素,并提取预设序列组库中预设序列组的预设组次位元素;所述按键组次位元素为所述按键序列组中的第二个元素,所述预设组次位元素为所述预设序列组中的第二个元素;
29.判断所述预设组次位元素中是否存在所述按键组次位元素;
30.当所述预设组次位元素中不存在所述按键组次位元素时,删除所述按键组首位元素,并判断所述按键序列组是否为空;
31.当所述按键序列组不为空时,触发执行所述提取所述按键序列组中的按键组首位元素,并提取预设序列组库中预设序列组的预设组首位元素的步骤;
32.当所述按键序列组为空时,触发执行所述检测用户输入的按键信息的步骤。
33.在上述实现过程中,该方法可以根据按键序列组中的多个元素进行逐个检测,从而在确保每个元素都准确无误的情况下获取到有效的按键序列组;另一方面,该方法还可以对首位元素进行逐个删除,并在所有元素都清空的情况下再次检测用户的输入,从而确保按键序列的检测过程不会被用户的输入所打断,进而提高按键序列检测的实时性和有效性。
34.进一步地,所述判断所述按键序列组是否等同于所述预设序列组的步骤包括:
35.提取所述按键序列组中的键值序列和系统时间差,并提取所述预设序列组中的预设序列和预设时间差;
36.判断所述键值序列是否等同于所述预设序列,并判断所述系统时间差是否等同于所述预设时间差;
37.当所述键值序列等同于所述预设序列且所述系统时间差等同于所述预设时间差时,确定所述按键序列组等同于所述预设序列组。
38.在上述实现过程中,该方法可以基于系统时间差来进一步判定按键序列是否准确、有效的被输入,从而提高按键序列的识别维度,并进一步提高按键序列的检测精准度。
39.本技术实施例第二方面提供了一种按键序列检测装置,所述按键序列检测装置包括:
40.检测单元,用于检测用户输入的按键信息;所述按键信息包括按键值和系统时间戳;
41.添加单元,用于将所述按键信息添加至按键序列组,得到新的按键序列组;
42.第一判断单元,用于判断预设序列组库中是否存在与所述按键序列组相匹配的预设序列组;
43.第二判断单元,用于当所述预设序列组库中存在与所述按键序列组相匹配的所述预设序列组时,判断所述按键序列组是否等同于所述预设序列组;
44.执行单元,用于当所述按键序列组等同于所述预设序列组时,执行与所述预设序列组相对应的业务流程。
45.在上述实现过程中,该按键序列检测装置可以通过检测单元检测用户输入的按键信息;所述按键信息包括按键值和系统时间戳;通过添加单元将所述按键信息添加至按键序列组,得到新的按键序列组;通过第一判断单元判断预设序列组库中是否存在与所述按键序列组相匹配的预设序列组;通过第二判断单元当所述预设序列组库中存在与所述按键序列组相匹配的所述预设序列组时,判断所述按键序列组是否等同于所述预设序列组;通过执行单元当所述按键序列组等同于所述预设序列组时,执行与所述预设序列组相对应的业务流程。可见,该按键序列检测装置可以能够实现绝大部分场景下的按键检测需求,从而有效提升编码效率,避免重复编码工作。
46.本技术实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储
器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例第一方面中任一项所述的按键序列检测方法。
47.本技术实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例第一方面中任一项所述的按键序列检测方法。
附图说明
48.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
49.图1为本技术实施例提供的一种按键序列检测方法的流程示意图;
50.图2为本技术实施例提供的另一种按键序列检测方法的流程示意图;
51.图3为本技术实施例提供的一种按键序列检测装置的结构示意图;
52.图4为本技术实施例提供的另一种按键序列检测装置的结构示意图。
具体实施方式
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
54.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
55.实施例1
56.请参看图1,图1为本实施例提供了一种按键序列检测方法的流程示意图。其中,该按键序列检测方法包括:
57.s101、检测用户输入的按键信息;按键信息包括按键值和系统时间戳。
58.本实施例中,该方法可以等待用户输入一个按键,得到按键信息(按键输入方法:包含键盘输入、普通按键输入、语音输入等任意形式)。
59.作为一种可选的实施方式,在检测用户输入的按键信息之前,该方法还包括:
60.根据业务需求创建业务流程;
61.构建与业务流程相对应的预设序列组;
62.根据预设序列组,创建预设序列组库。
63.本实施例中,该方法可以根据业务需求,自行构建出预设的按键序列组,同时对每组检测规则进行设置。
64.举例来说,业务需求需要检测输入按键为a+b+c+d,且按键输入总时间不得大于700ms,则触发设备日志导出功能。检测按键输入为b+c+a+d,且按键输入总时间不得大于500ms,则触发日志清理工作,则构建的目标按键序列组包括两个按键检测序列dst0=[’a,time=0’,’b,time=0’,’c,time=0’,’d,time《700’]、dst1=[’b,time=0’,’c,time=0’,’a,time=0’,’d,time《500’]。
[0065]
s102、将按键信息添加至按键序列组,得到新的按键序列组。
[0066]
s103、判断预设序列组库中是否存在与按键序列组相匹配的预设序列组,若是,则执行步骤s104;若否,则执行步骤s105。
[0067]
s104、判断按键序列组是否等同于预设序列组,若是,则执行步骤s106;若否,则执行步骤s105。
[0068]
本实施例中,该方法在收到调用者输入的按键和目标按键序列组后,获取当前系统时间戳。将按键连同时间戳组成待检测队列项,将待检测队列项通过尾插法插入到按键序列检测模块的待检测队列中。然后将待检测队列项与目标检测序列进行对比,最终返回对比结果给调用者。
[0069]
作为一种可选的实施方式,判断按键序列组是否等同于预设序列组的步骤包括:
[0070]
提取按键序列组中的键值序列和系统时间差,并提取预设序列组中的预设序列和预设时间差;
[0071]
判断键值序列是否等同于预设序列,并判断系统时间差是否等同于预设时间差;
[0072]
当键值序列等同于预设序列且系统时间差等同于预设时间差时,确定按键序列组等同于预设序列组。
[0073]
本实施例中,判断键值序列是否等同于预设序列的过程中既判断按键的键值、按键的顺序与预设序列是否相同,还判断按键的数量与预设序列是否相同。
[0074]
s105、删除按键序列组中的头部元素,并执行步骤s103。
[0075]
s106、执行与预设序列组相对应的业务流程。
[0076]
本实施例中,按键序列组初始为空,按键序列组的实现方式包括数组,链表等。本方法将每次输入的按键连同按键输入时的系统时间戳组成一个待检测队列项,然后将待检测队列项通过尾插法插入待检测队列尾部。然后,从待检测队列头部开始,依次取出一个待检测队列项,与目标按键序列组中的每一序列从头部开始依次进行比较,比较内容包括:按键值是否一致,按键输入时间间隔是否满足目标按键序列中设计需求。如果待检测队列与目标按键序列不匹配,则从待检测队列头部删除一个待检测队列项。然后从待检测队列头部开始,依次取出一个待检测队列项,再次与目标按键序列组中的每一序列从头部开始依次进行比较,直到匹配成功,或者部分匹配,或者待检测队列为空时,匹配动作不再执行。
[0077]
在本实施例中,比较结果具体分为:
[0078]
不匹配(待检测队列与目标按键序列项不一致,或者待检测队列项不满足目标按键序列的时间规则);
[0079]
近似匹配(在满足时间规则的前提下,目标检测序列项从第一个元素开始完全包含待检测队列项且顺序一致,如:目标为:a、b、c、d,待检测队列为:a或者a、b或者a、b、c,此时称为近似匹配);
[0080]
完全匹配(在满足时间规则的前提下,目标检测序列项从第一个元素开始与待检测队列完全一致,且数量相同)。
[0081]
对于对比结果分三种情况具体描述:
[0082]
1)从头部开始遍历全部的目标按键序列项和待检测队列进行比较。如果比较结果全部为不匹配,则从待检测队列头部删除第一个元素,然后重新遍历全部的目标按键序列项和待检测队列进行比较。直到待检测队列为空,或者出现近似匹配或者出现完全匹配;
[0083]
2)遍历全部的目标按键序列项和待检测队列进行比较。如果比较结果中出现近似
匹配,则表明用户输入的按键序列可能是正确的,此时需要用户输入剩余按键,才能具体确定匹配是否成功。所以此时模块返回给调用者匹配不成功要求用户继续输入;
[0084]
3)遍历全部的目标按键序列项和待检测队列进行比较。如果比较结果中出现完全匹配,则表明用户准确的按下了某种合规的按键序列。此时删除待检测队列,返回给调用者匹配成功的。
[0085]
通过上述方法即可完成对任意按键序列进行准确检测,当目标按键序列发生变更时,只需要调用者改变目标按键序列以及相关参数即可。按键检测方法可以完全不需要修改。
[0086]
目前,该方法能够解决现有按键序列检测代码,可读性较差的问题;现有按键序列检测代码,可维护性较差的问题;现有按键序列检测代码,可扩展性较差的问题;现有按键序列检测代码,不具备可移植性,不能通用的问题;现有按键序列检测代码,在应对同时需要检查多组按键序列的场景中逻辑复杂,编码难度非常大,且容易造成逻辑混乱,产生功能不可靠的问题。
[0087]
本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
[0088]
在本实施例中,该方法的执行主体还可以为智能手机、平板电脑等智能设备,对此本实施例中不作任何限定。
[0089]
可见,实施本实施例所描述的按键序列检测方法,能够实现绝大部分场景下的按键检测需求,从而有效提升编码效率,避免重复编码工作。
[0090]
实施例2
[0091]
请参看图2,图2为本实施例提供了一种按键序列检测方法的流程示意图。其中,该按键序列检测方法包括:
[0092]
s201、检测用户输入的按键信息;按键信息包括按键值和系统时间戳。
[0093]
作为一种可选的实施方式,在检测用户输入的按键信息之前,该方法还包括:
[0094]
根据业务需求创建业务流程;
[0095]
构建与业务流程相对应的预设序列组;
[0096]
根据预设序列组,创建预设序列组库。
[0097]
s202、通过尾插法将按键信息添加至按键序列组的尾部,得到新的按键序列组。
[0098]
s203、判断预设序列组库中是否存在与按键序列组相匹配的预设序列组,若是,则执行步骤s204~s205;若否,则执行步骤s206。
[0099]
作为一种可选的实施方式,判断预设序列组库中是否存在与按键序列组相匹配的预设序列组的步骤包括:
[0100]
提取按键序列组中的按键组首位元素,并提取预设序列组库中预设序列组的预设组首位元素;按键组首位元素为按键序列组中的头部元素,预设组首位元素为预设序列组中的头部元素;
[0101]
判断预设组首位元素中是否存在按键组首位元素;
[0102]
当预设组首位元素中存在按键组首位元素时,提取按键序列组中的按键组次位元素,并提取预设序列组库中预设序列组的预设组次位元素;按键组次位元素为按键序列组中的第二个元素,预设组次位元素为预设序列组中的第二个元素;
[0103]
判断预设组次位元素中是否存在按键组次位元素;
[0104]
当预设组次位元素中不存在按键组次位元素时,删除按键组首位元素,并判断按键序列组是否为空;
[0105]
当按键序列组不为空时,触发执行提取按键序列组中的按键组首位元素,并提取预设序列组库中预设序列组的预设组首位元素的步骤;
[0106]
当按键序列组为空时,触发执行检测用户输入的按键信息的步骤。
[0107]
本实施例中,每个元素中都包括一个系统时间,而相邻两个元素之间的系统时间差也可以作为按键信息来辅助检测按键序列组是否与预设序列组相匹配。
[0108]
s204、提取按键序列组中的键值序列和系统时间差,并提取预设序列组中的预设序列和预设时间差。
[0109]
s205、判断键值序列是否等同于预设序列,并判断系统时间差是否等同于预设时间差,若是,则执行步骤s207;若否,则执行步骤s206。
[0110]
s206、删除按键序列组中的头部元素,并执行步骤s203。
[0111]
s207、执行与预设序列组相对应的业务流程。
[0112]
举例来说,预先设定好按键序列“a+b+c+d”,触发设备日志导出;按键序列“d+b+a+c”,触发设备日志清除功能。其中,按键序列没有时间要求。
[0113]
如果用户依次输入了f、a、d、b、a、c,则有以下步骤:
[0114]
1)调用者构建目标按键序列组dst={[

a’,

b’,

c’,

d’],[

d’,

b’,

a’,

c’]};
[0115]
2)用户输入按键f;
[0116]
3)调用者将按键f和目标按键序列组dst输入到通用按键检测模块中;
[0117]
4)通用按键检测模块将按键f加入待检测队列src尾部,此时src=[

f’];
[0118]
5)将src与dst进行对比发现,完全不匹配,则将f从src尾部删除,此时src为空;
[0119]
6)此时通用按键检测模块通知调用者输入不匹配;
[0120]
7)用户输入按键a;
[0121]
8)调用者将按键a和目标按键序列组dst输入到通用按键检测模块中;
[0122]
9)通用按键检测模块将按键a加入待检测队列src尾部,此时src=[

a’];
[0123]
10)将src与dst进行对比发现src近似匹配dst中的[

a’,

b’,

c’,

d’],这时需要用户继续输入,此时通用按键检测模块通知调用者输入不匹配;
[0124]
11)用户输入按键d;
[0125]
12)调用者将按键d和目标按键序列组dst输入到通用按键检测模块中;
[0126]
13)通用按键检测模块将按键d加入待检测队列src尾部,此时src=[

a’,

d’];
[0127]
14)将src与dst进行对比发现src与dst中任意一组都不匹配,所以从src头部删除一个元素,此时src=[

d’];
[0128]
15)再将将src与dst进行对比发现src近似匹配dst中[

d’,

b’,

a’,

c’],这时需要用户继续输入,此时通用按键检测模块通知调用者输入不匹配;
[0129]
16)用户输入按键b;
[0130]
17)调用者将按键b和目标按键序列组dst输入到通用按键检测模块中;
[0131]
18)通用按键检测模块将按键b加入待检测队列src尾部,此时src=[

d’,

b’];
[0132]
19)将src与dst进行对比发现src近似匹配dst中[

d’,

b’,

a’,

c’],这时需要用
户继续输入,此时通用按键检测模块通知调用者输入不匹配;
[0133]
20)用户输入按键a;
[0134]
21)调用者将按键a和目标按键序列组dst输入到通用按键检测模块中
[0135]
22)通用按键检测模块将按键a加入待检测队列src尾部,此时src=[

d’,

b’,

a’];
[0136]
23)将src与dst进行对比发现src近似匹配dst中[

d’,

b’,

a’,

c’],这时需要用户继续输入,此时通用按键检测模块通知调用者输入不匹配;
[0137]
24)用户输入按键c;
[0138]
25)调用者将按键c和目标按键序列组dst输入到通用按键检测模块中;
[0139]
26)通用按键检测模块将按键c加入待检测队列src尾部,此时src=[

d’,

b’,

a’,

c’];
[0140]
27)将src与dst进行对比发现src匹配dst中[

d’,

b’,

a’,

c’],此时已经匹配成功,将src全部删除后,通知调用者匹配成功,匹配项为dst的第2项;
[0141]
28)调用者发现匹配项为dst的第2项,执行设备日志清除功能。
[0142]
再举例来说,预先设定好按键序列“a+b+c+d”,触发设备日志导出,同时,要求按键a与b之间的输入间隔小于500ms、按键b与c要求输入间隔小于600ms、按键c与d要求输入间隔小于800ms;按键序列“d+b+a+c”,触发设备日志清除功能,要求b与a之间的输入间隔大于等于1000ms。
[0143]
如果用户依次输入了f、间隔500ms输入a、间隔600ms输入d、间隔700ms输入b、间隔800ms输入a、间隔1000ms输入c,则有以下步骤:
[0144]
1)调用者构建目标按键序列组dst={[

a,time=0’,

b,time《500’,

c,time《600’,

d,time《800’],[

d,time=0’,

b,time=0’,

a,time》=1000’,

c,time=0’]};
[0145]
2)用户输入按键f;
[0146]
3)调用者将按键f和目标按键序列组dst输入到通用按键检测模块中;
[0147]
4)通用按键检测模块获取当前系统时间(假设当前系统时间为0),将当前系统时间和按键f加入待检测队列src尾部,此时src=[

f,sys_time=0’];
[0148]
5)将src与dst进行对比发现,完全不匹配,则将f和时间戳从src尾部删除,此时src为空;
[0149]
6)此时通用按键检测模块通知调用者输入不匹配;
[0150]
7)用户输入按键a;
[0151]
8)调用者将按键a和目标按键序列组dst输入到通用按键检测模块中;
[0152]
9)通用按键检测模块获取当前系统时间,将当前系统时间和按键a加入待检测队列src尾部,此时src=[

a,sys_time=500’];
[0153]
10)将src与dst进行对比发现src近似匹配dst中的[

a,time=0’,

b,time《500’,

c,time《600’,

d,time《800’],这时需要用户继续输入,此时通用按键检测模块通知调用者输入不匹配;
[0154]
11)用户输入按键d;
[0155]
12)调用者将按键d和目标按键序列组dst输入到通用按键检测模块中;
[0156]
13)通用按键检测模块获取当前系统时间,将当前系统时间和按键d加入待检测队
列src尾部,此时src=[

a,sys_time=500’,

d,sys_time=1100’];
[0157]
14)将src与dst进行对比发现src与dst中任意一组都不匹配,所以从src头部删除一个元素,此时src=[

d,sys_time=1100’];
[0158]
15)再将将src与dst进行对比发现src近似匹配dst中[

d,time=0’,

b,time=0’,

a,time》=1000’,

c,time=0’],这时需要用户继续输入,此时通用按键检测模块通知调用者输入不匹配;
[0159]
16)用户输入按键b;
[0160]
17)调用者将按键b和目标按键序列组dst输入到通用按键检测模块中;
[0161]
18)通用按键检测模块获取当前系统时间,将当前系统时间和按键b加入待检测队列src尾部,此时src=[

d,sys_time=1100’,

b,sys_time=1800’]
[0162]
19)将src与dst进行对比发现src近似匹配dst中[

d,time=0’,

b,time=0’,

a,time》=1000’,

c,time=0’],这时需要用户继续输入,此时通用按键检测模块通知调用者输入不匹配;
[0163]
20)用户输入按键a;
[0164]
21)调用者将按键a和目标按键序列组dst输入到通用按键检测模块中;
[0165]
22)通用按键检测模块获取当前系统时间,将当前系统时间和按键a加入待检测队列src尾部,此时src=[

d,sys_time=1100’,

b,sys_time=1800’,

a,sys_time=2600’];
[0166]
23)将src与dst进行对比发现src与dst中的目标按键序列项[

d,time=0’,

b,time=0’,

a,time》=1000’,

c,time=0’],虽然按键序列相似,但是src中b与a的输入时间差为800ms,而dst中要求b与a的时间间隔需要大于1000ms,所以此时匹配失败,需要从src头部删除一个元素,此时src=[

b,sys_time=1800’,

a,sys_time=2600’];
[0167]
24)再次将src与dst进行比较,发现完全不匹配,则再次从src头部删除一个元素,此时src=[

a,sys_time=2600’];
[0168]
25)再次将src与dst进行比较,发现完全不匹配,则再次从src头部删除一个元素,此时src为空,则返回通知调用者不匹配;
[0169]
26)用户输入按键c;
[0170]
27)调用者将按键c和目标按键序列组dst输入到通用按键检测模块中;
[0171]
28)通用按键检测模块获取当前系统时间,将当前系统时间和按键c加入待检测队列src尾部,此时src=[

c,sys_time=3600’];
[0172]
29)将src与dst进行对比发现完全不匹配,从src头部删除一个元素,此时src为空,则返回通知调用者不匹配;
[0173]
30)调用者决策是否继续等待用户输入;
[0174]
本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
[0175]
在本实施例中,该方法的执行主体还可以为智能手机、平板电脑等智能设备,对此本实施例中不作任何限定。
[0176]
可见,实施本实施例所描述的按键序列检测方法,能够实现绝大部分场景下的按键检测需求,从而有效提升编码效率,避免重复编码工作。
[0177]
实施例3
[0178]
请参看图3,图3为本实施例提供的一种按键序列检测装置的结构示意图。如图3所示,该按键序列检测装置包括:
[0179]
检测单元310,用于检测用户输入的按键信息;按键信息包括按键值和系统时间戳;
[0180]
添加单元320,用于将按键信息添加至按键序列组,得到新的按键序列组;
[0181]
第一判断单元330,用于判断预设序列组库中是否存在与按键序列组相匹配的预设序列组;
[0182]
第二判断单元340,用于当预设序列组库中存在与按键序列组相匹配的预设序列组时,判断按键序列组是否等同于预设序列组;
[0183]
执行单元350,用于当按键序列组等同于预设序列组时,执行与预设序列组相对应的业务流程。
[0184]
本实施例中,对于按键序列检测装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
[0185]
可见,实施本实施例所描述的按键序列检测装置,能够实现绝大部分场景下的按键检测需求,从而有效提升编码效率,避免重复编码工作。
[0186]
实施例4
[0187]
请参看图4,图4为本实施例提供的一种按键序列检测装置的结构示意图。如图4所示,该按键序列检测装置包括:
[0188]
检测单元310,用于检测用户输入的按键信息;按键信息包括按键值和系统时间戳;
[0189]
添加单元320,用于将按键信息添加至按键序列组,得到新的按键序列组;
[0190]
第一判断单元330,用于判断预设序列组库中是否存在与按键序列组相匹配的预设序列组;
[0191]
第二判断单元340,用于当预设序列组库中存在与按键序列组相匹配的预设序列组时,判断按键序列组是否等同于预设序列组;
[0192]
执行单元350,用于当按键序列组等同于预设序列组时,执行与预设序列组相对应的业务流程。
[0193]
作为一种可选的实施方式,按键序列检测装置还包括:
[0194]
创建单元360,用于根据业务需求创建业务流程;
[0195]
构建单元370,用于构建与业务流程相对应的预设序列组;
[0196]
创建单元360,用于根据预设序列组,创建预设序列组库。
[0197]
作为一种可选的实施方式,添加单元320具体用于通过尾插法将按键信息添加至按键序列组的尾部,得到新的按键序列组。
[0198]
作为一种可选的实施方式,按键序列检测装置还包括:
[0199]
删除单元380,用于当预设序列组库中不存在与按键序列组相匹配的预设序列组时,删除按键序列组中的头部元素,并触发第一判断单元330执行判断预设序列组库中是否存在与按键序列组相匹配的预设序列组的操作;其中,头部元素为按键序列组中位于头部的按键信息。
[0200]
作为一种可选的实施方式,按键序列检测装置还包括:
[0201]
删除单元380,用于当按键序列组不等同于预设序列组时,删除按键序列组中的头部元素,并触发第一判断单元330执行判断预设序列组库中是否存在与按键序列组相匹配的预设序列组的操作;其中,头部元素为按键序列组中位于头部的按键信息。
[0202]
作为一种可选的实施方式,第一判断单元330包括:
[0203]
第一提取子单元331,用于提取按键序列组中的按键组首位元素,并提取预设序列组库中预设序列组的预设组首位元素;按键组首位元素为按键序列组中的头部元素,预设组首位元素为预设序列组中的头部元素;
[0204]
第一判断子单元332,用于判断预设组首位元素中是否存在按键组首位元素;
[0205]
第一提取子单元331,还用于当预设组首位元素中存在按键组首位元素时,提取按键序列组中的按键组次位元素,并提取预设序列组库中预设序列组的预设组次位元素;按键组次位元素为按键序列组中的第二个元素,预设组次位元素为预设序列组中的第二个元素;
[0206]
第一判断子单元332,还用于判断预设组次位元素中是否存在按键组次位元素;
[0207]
第一删除子单元333,用于当预设组次位元素中不存在按键组次位元素时,删除按键组首位元素,并判断按键序列组是否为空;并在按键序列组不为空时,触发第一提取子单元331执行提取按键序列组中的按键组首位元素,并提取预设序列组库中预设序列组的预设组首位元素的操作;并在当按键序列组为空时,触发检测单元310执行检测用户输入的按键信息的操作。
[0208]
作为一种可选的实施方式,第二判断单元340包括:
[0209]
第二提取子单元341,用于提取按键序列组中的键值序列和系统时间差,并提取预设序列组中的预设序列和预设时间差;
[0210]
第二判断子单元342,用于判断键值序列是否等同于预设序列,并判断系统时间差是否等同于预设时间差;当键值序列等同于预设序列且系统时间差等同于预设时间差时,确定按键序列组等同于预设序列组。
[0211]
本实施例中,对于按键序列检测装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
[0212]
可见,实施本实施例所描述的按键序列检测装置,能够实现绝大部分场景下的按键检测需求,从而有效提升编码效率,避免重复编码工作。
[0213]
本技术实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例1或实施例2中的按键序列检测方法。
[0214]
本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例1或实施例2中的按键序列检测方法。
[0215]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一
部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0216]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0217]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0218]
以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0219]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
[0220]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1