1.一种解决快捷键冲突的方法,应用于与宿主程序共享输入序列的寄宿程序,其特征在于,所述寄宿程序包括输入法,所述宿主程序包括输入焦点所在的应用程序,所述方法包括:
捕获用户输入的快捷键;
执行该快捷键对应的操作;
如果所述操作导致所述宿主程序状态异常、或导致用户的多余处理,则在所述宿主程序运行时禁用所述寄宿程序的该快捷键。
2.如权利要求1所述的方法,其特征在于,所述宿主程序状态异常进一步包括:宿主程序显示停止刷新,或者宿主程序停止响应。
3.如权利要求1所述的方法,其特征在于,所述方法进一步包括:针对与该快捷键相应的操作结果,如果用户在未使用任何功能的情况下将其关闭,或者在设定第一时间内未使用其提供的任何功能,或者在设定第二时间内进行逆向操作,则所述操作导致用户的多余处理。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述方法在执行该快捷键对应的操作前还包括:如果所述快捷键已经在所述寄宿程序中禁用,则不再执行其对应的操作,并将所述禁用的快捷键作为输入序列传递给所述宿主程序。
5.如权利要求1至3中任一项所述的方法,其特征在于,在所述宿主程序运行时禁用所述寄宿程序的该快捷键之前,所述方法还包括:询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的该快捷键。
6.如权利要求1至3中任一项所述的方法,其特征在于,还包括:
识别所述快捷键所处宿主程序和/或所处宿主程序的所属类别,得到相应的识别结果;
所述在所述宿主程序运行时禁用所述寄宿程序的该快捷键的步骤,包括:
客户端依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。
7.如权利要求6所述的方法,其特征在于,还包括:
客户端将各自的快捷键冲突配置上传至服务器端;
服务器端依据客户端上传的配置,汇总得到所述寄宿程序与所述宿主程序之间的快捷键冲突配置结果;
服务器端将所述快捷键冲突配置结果同步至客户端。
8.一种解决快捷键冲突的装置,应用于与宿主程序共享输入序列的寄宿程序,其特征在于,所述寄宿程序包括输入法,所述宿主程序包括输入焦点所在的应用程序,所述装置包括:
捕获单元,用于捕获用户输入的快捷键;
操作执行单元,用于执行该快捷键对应的操作;及
快捷键禁用单元,用于在所述操作导致所述宿主程序状态异常、或导致用户的多余处理时,在所述宿主程序运行时禁用所述寄宿程序的该快捷键。
9.如权利要求8所述的装置,其特征在于,所述宿主程序状态异常进一步包括:宿主程序显示停止刷新或宿主程序停止响应。
10.如权利要求8所述的装置,其特征在于,还包括:
确定单元,用于针对与该快捷键相应的操作结果,如果用户在未使用任何功能的情况下将其关闭,或者在设定第一时间内未使用其提供的任何功能,或者在设定第二时间内进行逆向操作,则确定所述操作导致用户的多余处理。
11.如权利要求8至10任一项所述的装置,其特征在于,还包括:
传递单元,用于在执行该快捷键对应的操作前,如果所述快捷键已经在所述寄宿程序中禁用,则不再执行其对应的操作,并将所述禁用的快捷键作为输入序列传递给所述宿主程序。
12.如权利要求8至10中任一项所述的装置,其特征在于,还包括:
询问单元,用于在所述宿主程序运行时禁用所述寄宿程序的该快捷键之前,询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的该快捷键。
13.如权利要求8至10中任一项所述的装置,其特征在于,还包括:
场景识别单元,用于识别所述快捷键所处宿主程序和/或所处宿主程序的所属类别,得到相应的识别结果;
所述快捷键禁用单元具体用于依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。
14.一种解决快捷键冲突的方法,应用于与宿主程序共享输入序列的寄宿程序,其特征在于,所述寄宿程序包括输入法,所述宿主程序包括输入焦点所在的应用程序,所述方法包括:
捕获用户的输入序列;
如果在捕获所述输入序列后出现寄宿程序状态异常,则依据所述输入序列确定相应的宿主程序的快捷键;
如果所述相应的宿主程序的快捷键同时为寄宿程序的快捷键,则在所述宿主程序运行时禁用所述寄宿程序的快捷键。
15.如权利要求14所述的方法,其特征在于,所述寄宿程序状态异常进一步包括:寄宿程序失去对输入序列按键状态的捕获,或者寄宿程序失去对输入序列按键状态的捕获并检测到输入焦点切换。
16.如权利要求14所述的方法,其特征在于,所述输入序列为所述相应的宿主程序的快捷键,或者,所述输入序列为所述相应的宿主程序的快捷键的一部分。
17.如权利要求16所述的方法,其特征在于,在所述输入序列为所述相应的宿主程序的快捷键的一部分时,依据所述输入序列确定相应的宿主程序的快捷键的步骤,包括:
检测包含所述输入序列的且已被宿主程序注册的全局快捷键,得到相应的宿主程序的全局快捷键。
18.如权利要求14至17中任一项所述的方法,其特征在于,还包括:
识别所述寄宿程序的快捷键所处宿主程序和/或所处宿主程序的所属类别,得到相应的识别结果;
所述在所述宿主程序运行时禁用所述寄宿程序的快捷键的步骤,包括:
客户端依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。
19.如权利要求14至17中任一项所述的方法,其特征在于,还包括:
客户端将各自的快捷键冲突配置上传至服务器端;
服务器端依据客户端上传的配置,汇总得到所述寄宿程序与所述宿主程序之间的快捷键冲突配置结果;
服务器端将所述快捷键冲突配置结果同步至客户端。
20.一种解决快捷键冲突的装置,应用于与宿主程序共享输入序列的寄宿程序,其特征在于,所述寄宿程序包括输入法,所述宿主程序包括输入焦点所在的应用程序,所述装置包括:
捕获单元,用于捕获用户的输入序列;
快捷键确定单元,用于在捕获所述输入序列后出现寄宿程序状态异常时,依据所述输入序列确定相应的宿主程序的快捷键;及
快捷键禁用单元,用于在所述相应的宿主程序的快捷键同时为寄宿程序的快捷键时,在所述宿主程序运行时禁用所述寄宿程序的快捷键。
21.如权利要求20所述的装置,其特征在于,所述寄宿程序状态异常进一步包括:寄宿程序失去对输入序列按键状态的捕获,或者寄宿程序失去对输入序列按键状态的捕获并检测到输入焦点切换。
22.如权利要求20所述的装置,其特征在于,所述输入序列为所述相应的宿主程序的快捷键,或者,所述输入序列为所述相应的宿主程序的快捷键的一部分。
23.如权利要求22所述的装置,其特征在于,所述装置还包括:
检测单元,用于在所述输入序列为所述相应的宿主程序的快捷键的一部分时,检测包含所述输入序列的且已被宿主程序注册的全局快捷键,得到相应的宿主程序的全局快捷键。
24.如权利要求20至23中任一项所述的装置,其特征在于,还包括:
场景识别单元,用于识别所述寄宿程序的快捷键所处宿主程序和/或所处宿主程序的所属类别,得到相应的识别结果;
所述快捷键禁用单元具体用于依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。
一种解决快捷键冲突的方法和装置\n技术领域\n[0001] 本申请涉及输入法技术领域,特别是涉及一种解决快捷键冲突的方法和装置。\n背景技术\n[0002] 输入法是一种通过设备中的输入序列得到设备中可显示符号的软件。通常情况下,IME(输入法编辑器,Input Method Editor)捕获设备中的输入序列,对其进行转换,并把转换后的符号交给当前的应用程序。但是,输入法捕获的输入序列很有可能也是应用程序所需要的,这就造成了输入冲突的问题。\n[0003] 在输入冲突的问题中,输入法和应用程序的快捷键冲突问题尤其明显。具体表现为两种情况:一种是应用程序在底层先于输入法捕获输入,会绕过输入法的处理,这种情况导致输入法的快捷键失效,而应用程序的快捷键生效;另一种是应用程序采取上述通常方法捕获输入,此时输入法会先于应用程序捕获和处理输入,这种情况导致输入法的快捷键生效,而应用程序的快捷键失效。\n[0004] 申请号为200710027189.3、公开号为101266517、公开日为2008-09-17的中国发明专利申请(以下称为现有技术)公开了一种解决快捷键冲突的装置及方法,其中的方法流程具体可以包括如下工作步骤:\n[0005] 步骤1、工作开始:\n[0006] 步骤2、快捷键识别模块接受一个快捷键K的输入;\n[0007] 步骤3、快捷键冲突检查模块判断快捷键K是否与两个或两个以上的功能绑定,若是则执行步骤5,否则执行步骤4;\n[0008] 步骤4、功能执行模块执行跟快捷键K绑定的功能,然后执行步骤8;\n[0009] 步骤5、功能列出模块在显示设备列出与快捷键绑定的多个功能;\n[0010] 步骤6、功能选择模块接受在功能列出模块列出的一个功能的选择;\n[0011] 步骤7、功能执行模块执行被选择的功能;\n[0012] 步骤8、工作结束。\n[0013] 当一个应用程序中两个或两个以上的功能绑定了相同的快捷键时,现有技术能够有效解决所述两个或两个以上的功能引起的快捷键冲突问题,也即,现有技术适用于某应用程序解决自身内部的快捷键冲突问题。但是,输入法和应用程序的输入捕获是受顺序限制的,这样,只有输入法和应用程序中的一者执行步骤2捕获到一个快捷键K的输入,所以,现有技术并不适用于输入法和应用程序这种受输入和处理顺序限制的情况,从而,现有技术不能解决输入法和应用程序之间的快捷键冲突问题。\n[0014] 进一步,在实施现有技术时,需要首先确切地知道快捷键对应的所有功能,然后才能正确的列出和选择并执行功能。而输入法所处的环境非常复杂,因为它和所有的应用程序共享同一输入序列,而不同的应用程序会用不同的快捷键对应各种不同的功能,确切地列举出每个应用程序中每个快捷键对应的各个功能是不现实的事情。\n[0015] 总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够有效解决输入法和应用程序之间的快捷键冲突问题。\n发明内容\n[0016] 本申请所要解决的技术问题是提供一种解决快捷键冲突的方法和装置,能够有效解决寄宿程序与宿主程序之间的快捷键冲突问题。\n[0017] 为了解决上述问题,本申请公开了一种解决快捷键冲突的方法,应用于与宿主程序共享输入序列的寄宿程序,所述方法包括:\n[0018] 捕获用户输入的快捷键;\n[0019] 执行该快捷键对应的操作;\n[0020] 如果所述操作导致所述宿主程序状态异常、或导致用户的多余处理,则在所述宿主程序运行时禁用所述寄宿程序的该快捷键。\n[0021] 优选的,所述宿主程序状态异常进一步包括:宿主程序显示停止刷新,或者宿主程序停止响应。\n[0022] 优选的,所述方法进一步包括:针对与该快捷键相应的操作结果,如果用户在未使用任何功能的情况下将其关闭,或者在设定第一时间内未使用其提供的任何功能,或者在设定第二时间内进行逆向操作,则所述操作导致用户的多余处理。\n[0023] 优选的,所述方法在执行该快捷键对应的操作前还包括:如果所述快捷键已经在所述寄宿程序中禁用,则不再执行其对应的操作,并将所述禁用的快捷键作为输入序列传递给所述宿主程序。\n[0024] 优选的,在所述宿主程序运行时禁用所述寄宿程序的该快捷键之前,所述方法还包括:询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的该快捷键。\n[0025] 优选的,所述寄宿程序为输入法,所述宿主程序为输入焦点所在的应用程序。\n[0026] 优选的,所述方法还包括:\n[0027] 识别所述快捷键所处宿主程序和/或所处宿主程序的所属类别,得到相应的识别结果;\n[0028] 所述在所述宿主程序运行时禁用所述寄宿程序的该快捷键的步骤,包括:\n[0029] 客户端依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。\n[0030] 优选的,所述方法还包括:\n[0031] 客户端将各自的快捷键冲突配置上传至服务器端;\n[0032] 服务器端依据客户端上传的配置,汇总得到所述寄宿程序与所述宿主程序之间的快捷键冲突配置结果;\n[0033] 服务器端将所述快捷键冲突配置结果同步至客户端。\n[0034] 另一方面,本申请还公开了一种解决快捷键冲突的装置,应用于与宿主程序共享输入序列的寄宿程序,所述装置包括:\n[0035] 捕获单元,用于捕获用户输入的快捷键;\n[0036] 操作执行单元,用于执行该快捷键对应的操作;及\n[0037] 快捷键禁用单元,用于在所述操作导致所述宿主程序状态异常、或导致用户的多余处理时,在所述宿主程序运行时禁用所述寄宿程序的该快捷键。\n[0038] 优选的,所述宿主程序状态异常进一步包括:宿主程序显示停止刷新或宿主程序停止响应。\n[0039] 优选的,所述装置还包括:\n[0040] 确定单元,用于针对与该快捷键相应的操作结果,如果用户在未使用任何功能的情况下将其关闭,或者在设定第一时间内未使用其提供的任何功能,或者在设定第二时间内进行逆向操作,则确定所述操作导致用户的多余处理。\n[0041] 优选的,所述装置还包括:\n[0042] 传递单元,用于在执行该快捷键对应的操作前,如果所述快捷键已经在所述寄宿程序中禁用,则不再执行其对应的操作,并将所述禁用的快捷键作为输入序列传递给所述宿主程序。\n[0043] 优选的,所述装置还包括:\n[0044] 询问单元,用于在所述宿主程序运行时禁用所述寄宿程序的该快捷键之前,询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的该快捷键。\n[0045] 优选的,所述寄宿程序为输入法,所述宿主程序为输入焦点所在的应用程序。\n[0046] 优选的,所述装置还包括:\n[0047] 场景识别单元,用于识别所述快捷键所处宿主程序和/或所处宿主程序的所属类别,得到相应的识别结果;\n[0048] 所述快捷键禁用单元具体用于依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。\n[0049] 另一方面,本申请还公开了一种解决快捷键冲突的方法,应用于与宿主程序共享输入序列的寄宿程序,所述方法包括:\n[0050] 捕获用户的输入序列;\n[0051] 如果在捕获所述输入序列后出现寄宿程序状态异常,则依据所述输入序列确定相应的宿主程序的快捷键;\n[0052] 如果所述相应的宿主程序的快捷键同时为寄宿程序的快捷键,则在所述宿主程序运行时禁用所述寄宿程序的快捷键。\n[0053] 优选的,所述寄宿程序状态异常进一步包括:寄宿程序失去对输入序列按键状态的捕获,或者寄宿程序失去对输入序列按键状态的捕获并检测到输入焦点切换。\n[0054] 优选的,所述输入序列为所述相应的宿主程序的快捷键,或者,所述输入序列为所述相应的宿主程序的快捷键的一部分。\n[0055] 优选的,在所述输入序列为所述相应的宿主程序的快捷键的一部分时,依据所述输入序列确定相应的宿主程序的快捷键的步骤,包括:\n[0056] 检测包含所述输入序列的且已被宿主程序注册的全局快捷键,得到相应的宿主程序的全局快捷键。\n[0057] 优选的,所述寄宿程序为输入法。\n[0058] 优选的,所述方法还包括:\n[0059] 识别所述寄宿程序的快捷键所处宿主程序和/或所处宿主程序的所属类别,得到相应的识别结果;\n[0060] 所述在所述宿主程序运行时禁用所述寄宿程序的快捷键的步骤,包括:\n[0061] 客户端依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。\n[0062] 优选的,所述方法还包括:\n[0063] 客户端将各自的快捷键冲突配置上传至服务器端;\n[0064] 服务器端依据客户端上传的配置,汇总得到所述寄宿程序与所述宿主程序之间的快捷键冲突配置结果;\n[0065] 服务器端将所述快捷键冲突配置结果同步至客户端。\n[0066] 另一方面,本申请还公开了一种解决快捷键冲突的装置,应用于与宿主程序共享输入序列的寄宿程序,所述装置包括:\n[0067] 捕获单元,用于捕获用户的输入序列;\n[0068] 快捷键确定单元,用于在捕获所述输入序列后出现寄宿程序状态异常时,依据所述输入序列确定相应的宿主程序的快捷键;及\n[0069] 快捷键禁用单元,用于在所述相应的宿主程序的快捷键同时为寄宿程序的快捷键时,在所述宿主程序运行时禁用所述寄宿程序的快捷键。\n[0070] 优选的,所述寄宿程序状态异常进一步包括:寄宿程序失去对输入序列按键状态的捕获,或者寄宿程序失去对输入序列按键状态的捕获并检测到输入焦点切换。\n[0071] 优选的,所述输入序列为所述相应的宿主程序的快捷键,或者,所述输入序列为所述相应的宿主程序的快捷键的一部分。\n[0072] 优选的,所述装置还包括:\n[0073] 检测单元,用于在所述输入序列为所述相应的宿主程序的快捷键的一部分时,检测包含所述输入序列的且已被宿主程序注册的全局快捷键,得到相应的宿主程序的全局快捷键。\n[0074] 优选的,所述寄宿程序为输入法。\n[0075] 优选的,所述装置还包括:\n[0076] 场景识别单元,用于识别所述寄宿程序的快捷键所处宿主程序和/或所处宿主程序的所属类别,得到相应的识别结果;\n[0077] 所述快捷键禁用单元具体用于依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。\n[0078] 与现有技术相比,本申请具有以下优点:\n[0079] 首先,本申请在在寄宿程序端捕获用户的输入序列后,如果出现寄宿程序状态异常、宿主程序状态异常、或用户的多余处理,则认为寄宿程序与宿主程序之间可能存在快捷键冲突问题,并在确定二者绑定相同的与所述序列相应的快捷键时,自动在所述宿主程序运行时禁用所述寄宿程序的与所述输入序列相应的快捷键;这样,在寄宿程序和宿主程序绑定相同的快捷键的情况下,所述寄宿程序的快捷键的禁用使得寄宿程序和宿主程序中,只有运行中宿主程序一者的快捷键启用且有效,这就能够避免出现宿主程序或寄宿程序快捷键失效的情况,并且,在用户下一次输入该快捷键时,能够避免出现宿主程序状态异常、或用户的多余处理;因此本申请能够有效解决寄宿程序与宿主程序之间的快捷键冲突问题,。\n[0080] 其次,本申请还可以云方式同步各寄宿程序客户端的快捷键冲突配置结果;以输入法为例,假设输入法客户端以配置列表形式维护各自的快捷键冲突配置,该配置列表包括宿主程序名称和对应的快捷键,则服务器端可以收集客户端的配置列表,并根据实际情况制作一份快捷键冲突配置表,再下发给所有输入法客户端;由于所述快捷键冲突配置表为不断升级的兼容性列表,其可以基于输入法广大的用户平台,持续性的跟进绝大部分宿主程序,从而能够有效解决输入法与宿主程序之间的快捷键冲突问题。\n附图说明\n[0081] 图1是本申请一种解决快捷键冲突的方法实施例1的流程图;\n[0082] 图2是本申请一种解决输入法与宿主程序之间快捷键冲突的方法示例1的流程图;\n[0083] 图3是本申请一种解决输入法与宿主程序之间快捷键冲突的方法示例2的流程图;\n[0084] 图4是本申请一种解决快捷键冲突的装置实施例1的结构图;\n[0085] 图5是本申请一种解决快捷键冲突的方法实施例2的流程图;\n[0086] 图6是本申请一种解决输入法与宿主程序之间快捷键冲突的方法示例3的流程图;\n[0087] 图7是本申请一种解决快捷键冲突的装置实施例2的结构图。\n具体实施方式\n[0088] 为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。\n[0089] 本申请可以有效解决寄宿程序与宿主程序之间的快捷键冲突问题;其中,宿主程序可用于在计算机环境下,提供寄宿程序赖以生存的软件环境也即宿主环境(host environment),同时,宿主程序还可以动态加载寄宿程序提供的DLL(动态链接库,Dynamic Link Library),以动态加载外部功能。\n[0090] 在实际中,寄宿程序提供的DLL可以包括DirectX(图像绘制加速引擎),windows提供的WinSock2(网络操作链接库),Common Control(windows标准控件库),输入法提供的输入法编辑器链接库(如存放在c:\windows\system32下的SogouPy.ime),360安全卫士提供的DLL等等。下面主要以输入法为寄宿程序的例子进行说明,其它寄宿程序请相互参照即可。\n[0091] 由于这些寄宿程序与宿主程序同处于宿主环境下且共享输入序列,故在二者绑定相同的快捷键的情况下,很容易引起二者之间的快捷键冲突问题。\n[0092] 本申请发明人在研究中发现,寄宿程序与宿主程序之间的快捷键冲突问题容易引起异常,这里的异常具体可以包括寄宿程序和宿主程序中任一者的功能异常(也即状态异常),或者,表现为用户的多余处理等;因此,如果在用户输入快捷键后,寄宿程序和宿主程序中任一者出现了功能异常,或者,用户出现了多余处理,则认为寄宿程序与宿主程序之间可能存在快捷键冲突问题。\n[0093] 因此,本申请实施例的核心构思之一在于,在寄宿程序端捕获用户的输入序列后,如果出现寄宿程序状态异常、宿主程序状态异常、或用户的多余处理,则认为寄宿程序与宿主程序之间可能存在快捷键冲突问题,并在确定二者绑定相同的与所述序列相应的快捷键时,自动在所述宿主程序运行时禁用所述寄宿程序的与所述输入序列相应的快捷键。\n[0094] 本申请在寄宿程序和宿主程序绑定相同的快捷键的情况下,一旦检测到该快捷键引起的二者中任一者的功能异常或引起用户的多余处理,就自动在所述宿主程序运行时禁用所述寄宿程序的该快捷键;由于所述寄宿程序的快捷键的禁用使得寄宿程序和宿主程序中,只有运行中宿主程序一者的快捷键启用且有效,这就能够避免出现宿主程序或寄宿程序快捷键失效的情况,并且,在用户下一次输入该快捷键时,能够避免出现宿主程序状态异常、或用户的多余处理,因此,本申请能够有效解决寄宿程序与宿主程序之间的快捷键冲突问题。\n[0095] 参照图1,示出了本申请一种解决快捷键冲突的方法实施例1的流程图,其应用于与宿主程序共享输入序列的寄宿程序,具体可以包括:\n[0096] 步骤101、捕获用户输入的快捷键;\n[0097] 步骤102、执行该快捷键对应的操作;\n[0098] 步骤103、如果所述操作导致所述宿主程序状态异常、或导致用户的多余处理,则在所述宿主程序运行时禁用所述寄宿程序的该快捷键。\n[0099] 由于寄宿程序与宿主程序共享输入序列,二者的捕获输入是受顺序限制的,故通常情况下一者先于另一者捕获到用户输入的快捷键。本实施例适用于如下情况:宿主程序采取正常方法捕获输入,此时寄宿程序会先于宿主程序捕获和处理输入,在发生快捷键冲突时,这种情况导致寄宿程序的快捷键生效,而宿主程序的快捷键失效。\n[0100] 本申请发明人在研究中发现,一旦用户输入的快捷键被寄宿程序捕获到,如果该快捷键也是寄宿程序的有效快捷键,则寄宿程序会执行该快捷键对应的操作;进一步,如果所述操作导致所述宿主程序状态异常、或导致用户的多余处理,则认为寄宿程序与宿主程序之间存在快捷键冲突问题,于是自动在所述宿主程序运行时禁用所述寄宿程序的该快捷键。\n[0101] 本领域技术人员知道,每个宿主程序里都运行有一个单独的寄宿程序,本申请所说的在宿主程序运行时禁用寄宿程序的快捷键,是指禁用在该宿主程序里运行的那个寄宿程序的快捷键。例如,输入法作为寄宿程序时,在Word和Excel里分别有一个输入法作为寄宿程序运行;如果Word和输入法有某个快捷键冲突,则禁用在Word里运行的输入法的该快捷键。\n[0102] 在本申请实施例中,优选的是,所述寄宿程序为输入法,所述宿主程序为输入焦点所在的应用程序。\n[0103] 在本申请的一种优选实施例中,所述宿主程序状态异常可以进一步包括:宿主程序显示停止刷新或宿主程序停止响应。\n[0104] 在本申请的一种应用示例中,输入法捕获用户输入的快捷键,并在执行该快捷键对应的操作后,判断宿主程序的状态是否异常。\n[0105] 本申请可以提供如下判断宿主程序的状态的方案:\n[0106] 方案一、\n[0107] 在指定的时间内截屏所述宿主程序的界面若干次,如果没有任何变化,则认为宿主程序显示停止刷新。\n[0108] 方案二、\n[0109] 在正常流程下,用户按下的按键首先进入到操作系统的消息队列,由操作系统再发送给寄宿程序和/或宿主程序。\n[0110] 寄宿程序和宿主程序在同一线程里处理输入,宿主程序没响应,可能导致寄宿程序也收不到按键,因此,方案二的宿主程序停止响应时,可能所有处理输入的程序都卡住,包括宿主程序和寄宿程序。\n[0111] 方案二的一个检测方式是,在另外一个新起的线程里发送按键,这个线程本身不会停止响应的,故如果寄宿程序接收到按键,就可以设置一个全局的标识;该新起的线程可以在一段时间内检测是否存在全局标识,如果很长时间内都未收到,就可以认为宿主程序停止响应。此时,在宿主程序中运行的寄宿程序也可能会停止响应。\n[0112] 以寄宿程序为输入法为例,输入法向操作系统发送一个特殊的不会响应的按键,如果接收不到,则认为宿主程序和寄宿程序停止响应。\n[0113] 在实际中,本领域技术人员可以根据实际需要采用上述判断宿主程序的状态的方案的一者或二者,其中,在采用二者时,通常应先判断宿主程序显示停止刷新,然后判断宿主程序停止响应。\n[0114] 在本申请的另一种优选实施例中,所述方法可以进一步包括:\n[0115] 针对与该快捷键相应的操作结果,如果用户在未使用任何功能的情况下将其关闭,或者在设定第一时间内未使用其提供的任何功能,或者在设定第二时间内进行逆向操作,则所述操作导致用户的多余处理。\n[0116] 例如,输入法定义了某些辅助输入快捷键用于实现相应的辅助输入功能,所述辅助输入功能具体可以包括手写、表情、截屏、语音功能,或切换输入法状态(如“ctrl+shift+E”将输入法从中文状态切换到英文状态)功能等等。\n[0117] 对于上述辅助输入快捷键引出的手写、表情、截屏、语音功能,如果用户在未使用任何功能的情况下将其关闭,或者在设定时间内未使用其提供的任何功能,则认为用户不需要手写、表情、截屏、语音功能;对于切换输入法状态的功能,如果用户很快切换回原始状态,也即在某个设定的时间内进行该快捷键的逆向操作,则也可以认为用户不需要使用该切换输入法状态的功能。\n[0118] 可以理解,本领域技术人员可以根据实际需求,预置上述各个设定时间的数值,如\n0.01ms,0.1ms,1ms等等,本申请对所述设定时间的具体数值不加以限制。\n[0119] 总之,在与该快捷键相应的操作导致用户的多余处理时,均可认为用户不需要相应的功能,进一步,可以认为寄宿程序对所述快捷键的响应打扰和影响了用户在当前宿主程序中的正常操作,也即,所述快捷键造成了输入法和当前宿主程序之间的冲突。\n[0120] 在本申请的再一种优选实施例中,所述方法在执行该快捷键对应的操作前还可以包括:如果所述快捷键已经在所述寄宿程序中禁用,则不再执行其对应的操作,并将所述禁用的快捷键作为输入序列传递给所述宿主程序。\n[0121] 由于通常情况下寄宿程序先于宿主程序捕获到用户输入的快捷键,本优选实施例在寄宿程序捕获到用户输入的快捷键的情况下,如果发现该快捷键已经在所述寄宿程序中禁用,则不再执行其对应的操作,从而能够避免寄宿程序执行该快捷键相应操作导致的宿主程序状态异常或导致用户的多余处理,也即,能够有效解决寄宿程序与宿主程序之间的快捷键冲突问题。\n[0122] 进一步,本优选实施例还将所述禁用的快捷键作为输入序列传递给所述宿主程序,使得该快捷键得以在当前宿主程序中启动对应的操作,从而能够保证宿主程序的正常运行。\n[0123] 总之,应用本申请实施例,在无需用户干预的情况下,与该快捷键相应的操作引起的所述宿主程序状态异常或用户的多余处理只会出现一次,第二次宿主程序便能正常工作,且不会打扰和影响用户在当前宿主程序中的正常操作。\n[0124] 在本申请的一种优选实施例中,在所述宿主程序运行时禁用所述寄宿程序的该快捷键之前,所述方法还可以包括:询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的该快捷键和/或所述寄宿程序的该快捷键对应的功能。\n[0125] 在与该快捷键相应的操作导致所述宿主程序状态异常或用户的多余处理时,为了避免在所述宿主程序运行时禁用所述寄宿程序的该快捷键对用户造成的影响,本优选实施例可询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的该快捷键,如果是,则禁用。\n[0126] 尤其在与该快捷键相应的操作导致用户的多余处理时,虽然认为此时用户不需要相应的功能,但不一定代表用户将来不需要相应的功能;故本优选实施例的询问方式能够有效避免在所述宿主程序运行时禁用所述寄宿程序的该快捷键对用户造成的影响。\n[0127] 在本申请的一种应用实施例中,可以向用户发出是否在所述宿主程序运行时禁用所述寄宿程序的快捷键和/或所述寄宿程序的快捷键功能的询问,然后依据用户选择,禁用或不禁用所述寄宿程序的快捷键和/或所述寄宿程序的快捷键功能。\n[0128] 通常,在禁用所述寄宿程序的快捷键时,寄宿程序不在所述宿主程序运行时使用该快捷键,但是可以为该快捷键的功能绑定新的不引起所述宿主程序冲突的快捷键,而在禁用所述寄宿程序的快捷键功能时,则不允许寄宿程序在所述宿主程序运行时使用该快捷键的功能。\n[0129] 在具体实现中,所述禁用所述寄宿程序的快捷键和/或所述寄宿程序的快捷键功能可以进一步包括:在当前寄宿程序中禁用所述快捷键和/或所述快捷键的功能,或者,在所有寄宿程序中禁用所述快捷键和/或所述快捷键的功能;可以提供用户相应的选项。\n[0130] 在本申请的另一种优选实施例中,所述方法还可以包括:\n[0131] 识别所述快捷键所处宿主程序和/或其所属类别,得到相应的识别结果;\n[0132] 所述在所述宿主程序运行时禁用所述寄宿程序的该快捷键的步骤,包括:\n[0133] 客户端依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。\n[0134] 在实际中,所述识别所述快捷键所处宿主程序的场景的步骤可以进一步包括根据进程名直接识别宿主程序名称,或者,根据宿主程序特征识别宿主程序的类别等。例如,游戏具有加载d3d.d11、全屏且置顶等特征,如果在识别过程中发现上述特征,则可以确定宿主程序的类别为游戏类别。\n[0135] 如果识别结果为宿主程序名称,则可以配置所述寄宿程序的快捷键在所述宿主程序名称对应的宿主程序运行时禁用;如果识别结果为宿主程序的类别,则可以配置所述寄宿程序的快捷键在所述宿主程序的类别对应的所有宿主程序运行时禁用。\n[0136] 在本申请实施例中,优选的是,还可以基于云方式同步各客户端的快捷键冲突配置结果。相应地,所述方法还可以包括:\n[0137] 客户端将各自的快捷键冲突配置上传至服务器端;\n[0138] 服务器端依据客户端上传的配置,汇总得到所述寄宿程序与所述宿主程序之间的快捷键冲突配置结果;\n[0139] 服务器端将所述快捷键冲突配置结果同步至客户端。\n[0140] 以输入法为例,假设输入法客户端各自的快捷键冲突配置为配置列表形式,该配置列表包括宿主程序名称和对应的快捷键,则服务器端可以收集客户端的配置列表,并根据实际情况制作一份快捷键冲突配置表,再下发给所有输入法客户端。\n[0141] 可以理解,所述快捷键冲突配置表为不断升级的兼容性列表,其可以基于输入法广大的用户平台,持续性的跟进绝大部分宿主程序,从而能够有效解决输入法与宿主程序之间的快捷键冲突问题,避免与输入法执行快捷键相应的操作导致宿主程序状态异常或用户的多余处理。\n[0142] 为使本领域技术人员更好地理解本申请,以下通过具体的例子说明解决输入法与宿主程序之间快捷键冲突的详细过程。\n[0143] 参照图2,示出了本申请一种解决输入法与宿主程序之间快捷键冲突的方法示例1的流程图,具体可以包括:\n[0144] 步骤201、捕获用户输入的快捷键;\n[0145] 步骤202、识别该快捷键所处宿主程序,得到相应的识别结果;\n[0146] 步骤203、通过匹配所述识别结果和现有的快捷键冲突配置表,判断输入法的该快捷键是否在该宿主程序运行时禁用,若是,则执行步骤204,否则执行步骤205;\n[0147] 步骤204、将所述快捷键作为输入序列传递给该宿主程序;流程结束;\n[0148] 步骤205、输入法执行该快捷键对应的操作;\n[0149] 步骤206、判断该宿主程序的状态是否异常,若是,则执行步骤207;若否,流程结束;\n[0150] 步骤207、依据所述识别结果,生成在所述宿主程序运行时禁用所述寄宿程序的该快捷键的配置记录,并将该配置记录添加至所述快捷键冲突配置表。\n[0151] 本示例在与快捷键相应的操作导致宿主程序状态异常时,立即生成在所述宿主程序运行时禁用所述寄宿程序的该快捷键的配置记录,在无用户干预的情况下,下一次用户在输入该快捷键时,所述宿主程序就能够正常工作。\n[0152] 参照图3,示出了本申请一种解决输入法与宿主程序之间快捷键冲突的方法示例2的流程图,具体可以包括:\n[0153] 步骤301、捕获用户输入的快捷键;\n[0154] 步骤302、识别该快捷键所处宿主程序,得到相应的识别结果;\n[0155] 步骤303、通过匹配所述识别结果和现有的快捷键冲突配置表,判断输入法的该快捷键是否在该宿主程序运行时禁用,若是,则执行步骤304,否则执行步骤305;\n[0156] 步骤304、将所述快捷键作为输入序列传递给该宿主程序;流程结束;\n[0157] 步骤305、输入法执行该快捷键对应的操作;\n[0158] 步骤306、判断针对与该快捷键相应的操作结果,用户是否在未使用任何功能的情况下将其关闭,或者在设定时间内未使用其提供的任何功能,若是,则执行步骤307;若否,流程结束;\n[0159] 步骤307、询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的该快捷键,若是,则执行步骤308;若否,流程结束;\n[0160] 步骤308、依据所述识别结果,生成在所述宿主程序运行时禁用所述寄宿程序的该快捷键的配置记录,并将该配置记录添加至所述快捷键冲突配置表。\n[0161] 本示例在与快捷键相应的操作导致用户多余的处理时,基于询问决定是否希望在所述宿主程序运行时禁用所述寄宿程序的该快捷键,若是,则认为用户不需要相应的功能,进一步,可以认为输入法对所述快捷键的响应打扰和影响了用户在当前宿主程序中的正常操作,因此,可以生成在所述宿主程序运行时禁用所述寄宿程序的该快捷键的配置记录。这样,在无用户干预的情况下,下一次用户在输入该快捷键时,能够避免用户的多余操作。\n[0162] 与前述方法实施例1相对应,本申请还给出了一种解决快捷键冲突的装置实施例\n1,参照图4所示的结构图,所述装置应用于与宿主程序共享输入序列的寄宿程序,具体可以包括:\n[0163] 捕获单元401,用于捕获用户输入的快捷键;\n[0164] 操作执行单元402,用于执行该快捷键对应的操作;及\n[0165] 快捷键禁用单元403,用于在所述操作导致所述宿主程序状态异常、或导致用户的多余处理时,在所述宿主程序运行时禁用所述寄宿程序的该快捷键。\n[0166] 在本申请的一种优选实施例中,所述宿主程序状态异常可以进一步包括:宿主程序显示停止刷新或宿主程序停止响应。\n[0167] 在本申请的另一种优选实施例中,所述装置还可以包括:\n[0168] 确定单元,用于针对与该快捷键相应的操作结果,如果用户在未使用任何功能的情况下将其关闭,或者在设定第一时间内未使用其提供的任何功能,或者在设定第二时间内进行逆向操作,则确定所述操作导致用户的多余处理。\n[0169] 在本申请的再一种优选实施例中,所述装置还可以包括:\n[0170] 传递单元,用于在执行该快捷键对应的操作前,如果所述快捷键已经在所述寄宿程序中禁用,则不再执行其对应的操作,并将所述禁用的快捷键作为输入序列传递给所述宿主程序。\n[0171] 在本申请的一种优选实施例中,所述装置还可以包括:\n[0172] 询问单元,用于在所述宿主程序运行时禁用所述寄宿程序的该快捷键之前,询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的该快捷键。\n[0173] 在本申请实施例中,优选的是,所述寄宿程序为输入法,所述宿主程序为输入焦点所在的应用程序。\n[0174] 在本申请的另一种优选实施例中,所述装置还可以包括:\n[0175] 场景识别单元,用于识别所述快捷键所处宿主程序和/或所处宿主程序的所属类别,得到相应的识别结果;\n[0176] 所述快捷键禁用单元具体用于依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。\n[0177] 对于装置实施例1而言,由于其与方法实施例1基本相似,所以描述的比较简单,相关之处参见方法实施例1的部分说明即可。\n[0178] 参照图5,示出了本申请一种解决快捷键冲突的方法实施例2的流程图,其应用于与宿主程序共享输入序列的寄宿程序,具体可以包括:\n[0179] 步骤501、捕获用户的输入序列;\n[0180] 步骤502、如果在捕获所述输入序列后出现寄宿程序状态异常,则依据所述输入序列确定相应的宿主程序的快捷键;\n[0181] 步骤503、如果所述相应的宿主程序的快捷键同时为寄宿程序的快捷键,则在所述宿主程序运行时禁用所述寄宿程序的快捷键。\n[0182] 本实施例适用于如下情况:宿主程序在底层先于寄宿程序捕获输入,当用户按下快捷键序列的最后一个键时,宿主程序会响应该快捷键,从而绕过寄宿程序的处理,这种情况通常导致寄宿程序的快捷键失效,而宿主程序的快捷键生效。\n[0183] 上述宿主程序先于寄宿程序捕获并响应快捷键导致寄宿程序的快捷键失效的情况也是寄宿程序与宿主程序之间存在快捷键冲突问题的一种表现,本实施例提供了一种检测宿主程序先于寄宿程序捕获并响应快捷键导致寄宿程序的快捷键失效的情况的方法;具体而言,在捕获输入序列后出现寄宿程序状态异常时,可以认为是宿主程序先于寄宿程序捕获并响应快捷键导致寄宿程序的快捷键失效的情况引起的,此时可以确定该输入序列与宿主程序的快捷键有关,表现在:其可能是宿主程序的快捷键或者宿主程序的快捷键的一部分,在此可以根据输入序列与宿主程序的快捷键的联系,确定宿主程序的快捷键;进一步,需要判断宿主程序的快捷键是否同时为寄宿程序自己的快捷键,如果是,则宿主程序先于寄宿程序捕获并响应快捷键会导致寄宿程序的快捷键失效,在此种情况下可认为寄宿程序与宿主程序之间存在快捷键冲突问题。\n[0184] 由于所述寄宿程序的快捷键的禁用使得寄宿程序和宿主程序中,只有运行中宿主程序一者的快捷键启用且有效,同时避免出现寄宿程序快捷键失效的情况,故能够有效解决寄宿程序与宿主程序之间的快捷键冲突问题。\n[0185] 当然,对于在所述宿主程序里运行的寄宿程序而言,禁用自己的快捷键,并不一定意味着禁用相应快捷键的功能,本领域技术人员可以根据需要,针对相应快捷键的功能更换快捷键等手段都是允许和可行的。\n[0186] 本申请可以提供如下寄宿程序状态异常的方案:\n[0187] 方案一、\n[0188] 所述寄宿程序状态异常可以进一步包括:寄宿程序失去对输入序列按键状态的捕获;\n[0189] 以寄宿程序是输入法为例,对于输入法而言,收到的正常按键一般都是按下+抬起,这样,在捕获用户输入序列的过程中,如果某个键只收到抬起消息,而没有收到按下消息,则可以判定出现了输入法状态异常,这里的输入法状态异常主要是由宿主程序响应快捷键引起的;此时,还可以确定该输入序列就是宿主程序的快捷键,至于其是不是输入法的快捷键需要输入法来判断,如果该输入序列同时为输入法的快捷键,则宿主程序先于输入法捕获并响应快捷键会导致输入法的快捷键失效,也即此种情况下寄宿程序与宿主程序之间存在快捷键冲突问题。\n[0190] 例如,输入法在word中捕获到“ctrl+shift+Q”输入序列,检测到Q键的抬起但未检测到Q键的按下,则可以认为“ctrl+shift+Q”快捷键为word的快捷键;此时,输入法可以判断“ctrl+shift+Q”是否为输入法自己的快捷键,如果是,则word先行捕获输入会导致输入法的“ctrl+shift+Q”快捷键不可用;于是,本申请可以自动在word运行时禁用输入法的“ctrl+shift+Q”快捷键,使得输入法和word中只有运行中word的“ctrl+shift+Q”快捷键启用且有效,故能够有效解决输入法与word之间的快捷键冲突问题。\n[0191] 方案二、\n[0192] 所述寄宿程序状态异常可以进一步包括:寄宿程序失去对输入序列按键状态的捕获并检测到输入焦点切换。\n[0193] 对于输入法而言,收到的正常按键一般都是按下+抬起,这样,在捕获用户输入序列的过程中,如果某个键只收到按下消息,而没有收到抬起消息,并且还检测到输入焦点的切换,则可以判定出现了输入法状态异常,这里的输入法状态异常主要是由宿主程序响应全局快捷键引起的;此时,还可以确定该输入序列与宿主程序的全局快捷键有关,具体表现在:其可能就是宿主程序的全局快捷键或者宿主程序的全局快捷键的一部分,在此可以根据输入序列与宿主程序的全局快捷键的联系,确定宿主程序的全局快捷键。同方案一,此种情况下,也需要判断宿主程序的全局快捷键是否同时为输入法自己的快捷键,如果是,则宿主程序先于输入法捕获并响应全局快捷键也会导致输入法的快捷键失效,在此种情况下认为寄宿程序与宿主程序之间存在快捷键冲突问题。\n[0194] 综上,方案一和方案二的主要区别在于,方案一适用的快捷键通常为局部快捷键,而方案二适用的快捷键通常为全局快捷键。\n[0195] 例如,用户输入“ctrl+shift+Q”以切出QQ程序进行聊天,QQ程序捕获到“ctrl+shift+Q”,并执行相应的功能,将输入焦点切换至QQ窗口中。期间,“ctrl”、“shift”的按下会被输入法捕获到,但“Q”的按下会导致QQ程序的切出,之后的按键都是在QQ程序里,因此,输入法收不到“ctrl”和“shift”的抬起,并且伴随输入焦点的切换。此时,可以判定某宿主程序注册了“ctrl+shift+X”的全局快捷键,输入法捕获的“ctrl+shift”只是该全局快捷键的一部分,但是暂时还不能确定“X”键。\n[0196] 本申请实施例中,所述输入序列为所述相应的宿主程序的快捷键,或者,所述输入序列为所述相应的宿主程序的快捷键的一部分。\n[0197] 在本申请的一种优选实施例中,在所述输入序列为所述相应的宿主程序的快捷键的一部分时,依据所述输入序列确定相应的宿主程序的快捷键的步骤,可以进一步包括:\n[0198] 检测包含所述输入序列的且已被宿主程序注册的全局快捷键,得到相应的宿主程序的全局快捷键;\n[0199] 此时,如果所述相应的宿主程序的全局快捷键同时为寄宿程序的快捷键,则可以在所述宿主程序运行时禁用所述寄宿程序的快捷键。\n[0200] 在本申请的一种优选实施例中,所述检测包含所述输入序列的且已被宿主程序注册的全局快捷键的步骤,可以进一步包括:\n[0201] 注册包含所述输入序列的新全局快捷键,如果注册失败,则将该新全局快捷键与所述寄宿程序中原有包含所述输入序列的快捷键进行比对,如果相同,则确定该新全局快捷键即为包含所述输入序列的且已被宿主程序注册的全局快捷键。\n[0202] 因为全局快捷键只有首个注册的才生效,而后面注册的会失败。在检测到在捕获所述输入序列后出现寄宿程序状态异常之后,可以挨个注册再取消所有的全局快捷键的组合,这样就能找到所有包含所述输入序列的且已宿主程序被占用的全局快捷键,再和输入法原有的包含所述输入序列的快捷键进行比对,就能找到有冲突的全局快捷键。\n[0203] 在本申请的一种优选实施例中,在所述宿主程序运行时禁用所述寄宿程序的快捷键之前,所述方法还可以包括:询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的快捷键。\n[0204] 在宿主程序先于寄宿程序捕获并响应快捷键导致寄宿程序的快捷键失效的情况引起所述寄宿程序状态异常时,为了避免在所述宿主程序运行时禁用所述寄宿程序的该快捷键对用户造成的影响,本优选实施例可询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的该快捷键,如果是,则禁用。\n[0205] 在本申请实施例中,优选的是,所述寄宿程序为输入法,并且,在所述输入序列为所述相应的宿主程序的全局快捷键的一部分时,所述宿主程序为输入焦点所在的应用程序。\n[0206] 在本申请实施例中,优选的是,所述方法还可以包括:\n[0207] 识别所述寄宿程序的快捷键所处宿主程序和/或所处宿主程序的所属类别,得到相应的识别结果;\n[0208] 所述在所述宿主程序运行时禁用所述寄宿程序的快捷键的步骤,包括:\n[0209] 客户端依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。\n[0210] 在本申请实施例中,可选的是,所述方法还可以包括:\n[0211] 客户端将各自的快捷键冲突配置上传至服务器端;\n[0212] 服务器端依据客户端上传的配置,汇总得到所述寄宿程序与所述宿主程序之间的快捷键冲突配置结果;\n[0213] 服务器端将所述快捷键冲突配置结果同步至客户端。\n[0214] 为使本领域技术人员更好地理解本申请,以下通过具体的例子说明解决输入法与宿主程序之间快捷键冲突的详细过程。\n[0215] 参照图6,示出了本申请一种解决输入法与宿主程序之间快捷键冲突的方法示例3的流程图,具体可以包括:\n[0216] 步骤601、捕获用户的输入序列;\n[0217] 步骤602、识别该快捷键所处宿主程序,得到相应的识别结果;\n[0218] 步骤603、通过匹配所述识别结果和快捷键冲突配置表,判断输入法的该快捷键是否在该宿主程序运行时禁用,若是,则执行步骤604,否则执行步骤605;\n[0219] 步骤604、将所述快捷键作为输入序列传递给该宿主程序;\n[0220] 步骤605、判断输入法在所述输入序列后是否出现寄宿程序状态异常,若是,则执行步骤606;\n[0221] 步骤606、询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的快捷键,若是,则执行步骤607;\n[0222] 步骤607、依据所述识别结果,生成在所述宿主程序运行时禁用所述寄宿程序的该快捷键的配置记录,并将该配置记录添加至所述快捷键冲突配置表。\n[0223] 本示例当输入法在输入序列后出现输入法状态异常时,认为所述输入法状态异常是由宿主程序先于寄宿程序捕获并响应快捷键使得寄宿程序的快捷键失效的情况导致的,也即输入法与宿主程序之间存在快捷键冲突问题,并基于询问决定是否希望在所述宿主程序运行时禁用所述输入法的该快捷键,若是,则认为用户不需要所述输入法的该快捷键的功能,因此,可以生成在所述宿主程序运行时禁用所述输入法的该快捷键的配置记录。这样,下一次宿主程序先于寄宿程序捕获并响应快捷键,能够避免出现寄宿程序快捷键失效的情况,故能够有效解决寄宿程序与宿主程序之间的快捷键冲突问题。\n[0224] 可以理解的是,对于在所述宿主程序里运行的输入法而言,禁用自己的快捷键,并不一定意味着禁用相应快捷键的功能,本领域技术人员可以根据需要,针对相应快捷键的功能更换快捷键等手段都是允许和可行的。\n[0225] 与前述方法实施例2相应,本申请还公开了一种解决快捷键冲突的装置实施例2,参照图7所示的结构图,其应用于与宿主程序共享输入序列的寄宿程序,具体可以包括:\n[0226] 捕获单元701,用于捕获用户的输入序列;\n[0227] 快捷键确定单元702,用于在捕获所述输入序列后出现寄宿程序状态异常时,依据所述输入序列确定相应的宿主程序的快捷键;及\n[0228] 快捷键禁用单元703,用于在所述相应的宿主程序的快捷键同时为寄宿程序的快捷键时,在所述宿主程序运行时禁用所述寄宿程序的快捷键。\n[0229] 在本申请的一种优选实施例中,所述寄宿程序状态异常可以进一步包括:寄宿程序失去对输入序列按键状态的捕获,或者寄宿程序失去对输入序列按键状态的捕获并检测到输入焦点切换。\n[0230] 在本申请实施例中,优选的是,所述输入序列为所述相应的宿主程序的快捷键,或者,所述输入序列为所述相应的宿主程序的快捷键的一部分。\n[0231] 在本申请的另一种优选实施例中,所述装置还可以包括:\n[0232] 检测单元,用于在所述输入序列为所述相应的宿主程序的快捷键的一部分时,检测包含所述输入序列的且已被宿主程序注册的全局快捷键,得到相应的宿主程序的全局快捷键。\n[0233] 在本申请的再一种优选实施例中,所述装置还可以包括:\n[0234] 询问单元,用于在所述宿主程序运行时禁用所述寄宿程序的快捷键之前,询问用户是否希望在所述宿主程序运行时禁用所述寄宿程序的快捷键。\n[0235] 在本申请实施例中,优选的是,所述寄宿程序为输入法。\n[0236] 在本申请的一种优选实施例中,所述装置还可以包括:\n[0237] 场景识别单元,用于识别所述寄宿程序的快捷键所处宿主程序和/或所处宿主程序的所属类别,得到相应的识别结果;\n[0238] 所述快捷键禁用单元位于具体用于依据所述识别结果,针对所述宿主程序和/或其所属类别配置所述寄宿程序的快捷键为禁用。\n[0239] 对于装置实施例2而言,由于其与方法实施例2基本相似,所以描述的比较简单,相关之处参见方法实施例2的部分说明即可。\n[0240] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。\n[0241] 以上对本申请所提供的一种解决快捷键冲突的方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
法律信息
- 2016-09-21
- 2013-08-07
实质审查的生效
IPC(主分类): G06F 3/023
专利申请号: 201110452298.6
申请日: 2011.12.29
- 2013-07-03
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-09-01
|
2009-02-26
| | |
2
| |
2004-02-11
|
2002-08-07
| | |
3
| |
2008-09-17
|
2007-03-16
| | |
4
| |
2011-02-02
|
2009-07-24
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |