CN106201492A - 一种热键实现方法、装置及电子设备 - Google Patents
一种热键实现方法、装置及电子设备 Download PDFInfo
- Publication number
- CN106201492A CN106201492A CN201610513043.9A CN201610513043A CN106201492A CN 106201492 A CN106201492 A CN 106201492A CN 201610513043 A CN201610513043 A CN 201610513043A CN 106201492 A CN106201492 A CN 106201492A
- Authority
- CN
- China
- Prior art keywords
- hot key
- operation information
- function
- button operation
- reading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明的实施例公开一种热键实现方法、装置及电子设备,涉及按键操作技术领域,能够有效防止热键因操作系统的控制使用而被覆盖或被恶意程序破所破坏。所述热键实现方法,包括:钩子函数读取用户的按键操作信息;其中,所述钩子函数挂钩于按键处理驱动程序的读取例程函数;所述钩子函数判断所述按键操作信息是否命中预设的热键规则;若所述按键操作信息命中预设的热键规则,则所述钩子函数触发预设的按键事件处理函数。所述装置和电子设备中包括实现上述方法步骤的模块。本发明适用于对操作系统环境的保护。
Description
技术领域
本发明涉及按键操作技术领域,尤其涉及一种热键实现方法、装置及电子设备。
背景技术
随着互联网技术发展,软件设计更加科学,更加人性化,更能满足用户使用习惯,软件热键设置就是一种方便使用软件的方法,比如QQ的Ctr+Alt+A是截屏功能。
热键,又叫快捷键或快速键,指通过某些特定的按键、按键顺序或按键组合来完成一个操作,很多热键往往与如Ctrl键、Shift键、Alt键、Fn键以及Windows平台下的Windows键和Mac机上的Meta键等配合使用。利用热键可以代替鼠标做一些工作,可以利用键盘热键打开、关闭和导航“开始”菜单、桌面、菜单、对话框以及网页,Word里面也可以用到热键。
现有技术方案中,是通过上层应用程序来实现软件热键功能的设置的,设置过程包括;使用windows函数GlobalAddAtom取得热键的唯一标识,调用RegisterHotKey注册一个热键,比如想设置ALT+F8的按键的热键,就调用RegisterHotKey(窗口句柄,热键的唯一标识,MOD_ALT,VK_F8),最后处理窗口的响应热键的事件即可完成整个热键的设置。
现有的这种实现热键的方案,在为多个软件设置热键时,容易导致先设置的热键被覆盖的问题,比如A,B两个软件都注册了ALT+F8的热键,那么操作系统就会控制使用最后注册的一个软件,A先注册的话,就会是后注册的B的热键生效。此外,现有实现热键的方案是上层应用程序实现的热键功能,恶意程序查找窗口的热键注册函数和窗口的事件处理函数,容易被恶意程序破坏热键设置,破坏热键的响应事件。
发明内容
有鉴于此,本发明实施例提供一种热键实现方法、装置及电子设备,能够有效防止热键因操作系统的控制使用而被覆盖或被恶意程序破所破坏。
第一方面,本发明实施例提供一种热键实现方法,包括:
钩子函数读取用户的按键操作信息;其中,所述钩子函数挂钩于按键处理驱动程序的读取例程函数;
所述钩子函数判断所述按键操作信息是否命中预设的热键规则;
若所述按键操作信息命中预设的热键规则,则所述钩子函数触发预设的按键事件处理函数。
结合第一方面,在第一方面的第一种可实施方式中,所述操作系统为Windows操作系统;
所述钩子函数挂钩于按键处理驱动程序KbdClass中名称为IRP_MJ_READ的读取例程函数。
结合第一方面或第一方面的第一种可实施方式,在第一方面的第二种可实施方式中,在所述钩子函数读取用户的按键操作信息之前,所述方法还包括:所述钩子函数截获操作系统发给所述按键处理驱动程序的读取按键操作信息的I/O请求包;
其中,所述钩子函数读取用户的按键操作信息包括:所述钩子函数根据截获的所述读取按键操作信息的I/O请求包,读取用户的按键操作信息。
结合第一方面的第二种可实施方式,在第一方面的第三种可实施方式中,所述钩子函数读取用户的按键操作信息之后,所述方法还包括:所述钩子函数调用所述钩子函数的读取完成回调函数,将读取的所述按键操作信息填入所述I/O请求包中传给所述读取完成回调函数;其中,所述读取完成回调函数中预设有所述热键规则,所述I/O请求包中包括的按键数据结构包括表示按下或抬起的字段和表示键盘扫描码的字段;
其中,所述钩子函数判断所述按键操作信息是否命中预设的热键规则,包括:所述钩子函数的读取完成回调函数判断所述按键操作信息是否命中预设的热键规则。
结合第一方面,在第一方面的第四种可实施方式中,所述热键规则包括:按键组合、前后两个按键按下的时间间隔是否满足预定阈值。
第二方面,本发明实施例提供一种热键实现装置,用于挂钩于按键处理驱动程序的读取例程函数,所述热键实现装置,包括:读取模块,用于读取用户的按键操作信息;判断模块,用于判断所述按键操作信息是否命中预设的热键规则;触发模块,用于若所述按键操作信息命中预设的热键规则,则所述钩子函数触发预设的按键事件处理函数。
结合第二方面,在第二方面的第一种可实施方式中,所述操作系统为Windows操作系统;所述热键实现装置用于挂钩于按键处理驱动程序KbdClass中名称为IRP_MJ_READ的读取例程函数。
结合第二方面或第二方面的第一种可实施方式,在第二方面的第二种可实施方式中,所述的热键实现装置,还包括:拦截模块,用于截获操作系统发给所述按键处理驱动程序的读取按键操作信息的I/O请求包;其中,所述读取模块,用于根据截获的所述读取按键操作信息的I/O请求包,读取用户的按键操作信息。
结合第二方面的第二种可实施方式,在第二方面的第三种可实施方式中,所述装置还包括:调用模块,用于在所述读取模块读取用户的按键操作信息之后,调用读取完成回调函数,将读取的所述按键操作信息填入所述I/O请求包中传给所述读取完成回调函数;其中,所述读取完成回调函数中预设有所述热键规则,所述I/O请求包中包括的按键数据结构包括表示按下或抬起的字段和表示键盘扫描码的字段;其中,所述判断模块,具体用于通过所述读取完成回调函数判断所述按键操作信息是否命中预设的热键规则。
结合第二方面,在第二方面的第四种可实施方式中,所述热键规则包括:按键组合、前后两个按键按下的时间间隔是否满足预定阈值。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一可实施方式所述的热键实现方法。
本发明实施例提供的热键实现方法、装置及电子设备,通过挂钩于按键处理驱动程序的读取例程函数的钩子函数,读取用户的按键操作信息,判断所述按键操作信息是否命中预设的热键规则,若所述按键操作信息命中预设的热键规则,则触发预设的按键事件处理函数,这样在驱动程序中不使用系统函数来实现热键功能,既能够避免由操作系统的控制使用所产生热键覆盖的问题,又不容易被恶意程序发现和破坏,有利于热键实现的安全性和稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明热键实现方法实施例一的流程示意图;
图2为本发明热键实现方法实施例二的流程示意图;
图3为本发明热键实现方法实施例三的流程示意图;
图4为本发明热键实现装置实施例一的结构示意图;
图5为本发明热键实现装置实施例二的结构示意图;
图6为本发明热键实现装置实施例三的结构示意图;
图7为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明防护的范围。
本发明实施例提供的热键实现方法、装置及电子设备,可应用于个人PC(personalcomputer)等电子设备上,在键盘的按键处理驱动程序中实现。
下面首先介绍一下键盘工作原理:在Windows操作系统中,用户按下键时,按键处理驱动程序KbdClass读取用户的按键信息,并将读取的按键信息通过IRP(I/O RequestPacket,I/O请求包)发送给操作系统,操作系统接收到按键按下消息。用户抬起键时,按键处理驱动程序KbdClass读取用户抬起键的信息,并将读取的按键信息通过IRP发送给操作系统,操作系统接收到按键抬起消息。
其中,按键处理驱动程序KbdClass是处理键盘按键的驱动,负责读取用户按键数据,并向操作系统发送按键消息。按键处理驱动程序KbdClass有一个名为IRP_MJ_READ的读取例程函数,在键盘按下或者抬起时,会在这个例程函数中,读取用户按键的操作数据。
图1为本发明热键实现方法实施例一的流程示意图。参看图1,本发明热键实现方法实施例,包括如下步骤:
S101、钩子函数读取用户的按键操作信息。
本实施例中,所述钩子(Hook)函数挂钩于按键处理驱动程序的读取例程函数。作为一可选实施例,所述钩子函数可挂钩于Windows操作系统中按键处理驱动程序KbdClass中名称为IRP_MJ_READ的读取例程函数。
本实施例中,在将所述钩子函数挂钩于按键处理驱动程序的读取例程函数时,需预先确定按键处理驱动程序的读取例程函数,确定过程可以包括:查找按键处理驱动程序KbdClass的驱动对象,由驱动名称\\Driver\\KbdClass,调用内核函数ObReferenceObjectByName可获取KbdClass的驱动对象;由驱动对象取得MajorFunction[IRP_MJ_READ]成员,就是名为IRP_MJ_READ的读取例程函数。
在本步骤之前,可由编程人员在按键处理驱动程序KbdClass中自定义一个新的读取例程函NewRead,挂钩原始的读取例程函数,即建立钩子函数NewRead。
钩子函数实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子函数就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
本实施例中,将按键处理驱动程序KbdClass中的名为IRP_MJ_READ的读取例程函数的原始入口地址修改为本实施例中的钩子函数的入口地址。操作系统向按键处理驱动程序KbdClass的读取例程函数发送读取按键操作信息的IRP时,由于所述读取例程函数的原始入口地址已被修改为本实施例的钩子函数的入口地址,即可跳至本实施例的钩子函数的执行。
为了实现对所述读取例程函数的回调,在将所述读取例程函数的原始入口地址修改为本实施例中的钩子函数的入口地址之前,需要对所述读取例程函数的原始入口地址进行保存。
S102、所述钩子函数判断所述按键操作信息是否命中预设的热键规则。
本实施例中,所述热键规则包括:按键组合、前后两个按键按下的时间间隔是否满足预定阈值。所述钩子函数根据读取到的用户的按键操作信息以及预设的热键规则,判断所述按键操作信息是否命中预设的热键规则。若所述按键操作信息命中预设的热键规则,则执行步骤S103,否则,则调用操作系统原始的读取例程函数。
S103、所述钩子函数触发预设的按键事件处理函数。
本实施例中,可在按键事件处理函数中实现用户按热键后的相应程序功能。
本发明实施例提供的热键实现方法,通过挂钩于按键处理驱动程序的读取例程函数的钩子函数,读取用户的按键操作信息,判断所述按键操作信息是否命中预设的热键规则,若所述按键操作信息命中预设的热键规则,则触发预设的按键事件处理函数,这样在驱动程序中不使用系统函数来实现热键功能,既能够避免由操作系统的控制使用所产生热键覆盖的问题,又不容易被恶意程序发现和破坏,有利于热键实现的安全性和稳定性。
图2为本发明热键实现方法实施例二的流程示意图。参看图2,本发明热键实现方法实施例,可适用于Windows操作系统,其包括如下步骤:
S201、钩子函数截获操作系统发给按键处理驱动程序的读取按键操作信息的I/O请求包。
本实施例中,操作系统如需要获取用户的按键操作信息,则会向按键处理驱动程序发送读取按键操作信息的I/O请求包。按键处理驱动程序读取用户的按键操作信息后,将用户的按键操作信息作为所述I/O请求包的返回值返回给操作系统。
S202、所述钩子函数读取用户的按键操作信息。
本实施例中,所述钩子函数根据截获的所述读取按键操作信息的I/O请求包,实时读取用户的按键操作信息。所述钩子函数读取用户的按键操作信息的过程与前述方法实施例的步骤S101相似,在此不再赘述。
S203、所述钩子函数判断所述按键操作信息是否命中预设的热键规则。
本实施例中,钩子函数判断所述按键操作信息是否命中预设的热键规则的过程与前述方法实施例的步骤S102相似,在此不再赘述。经过判断,若所述按键操作信息命中预设的热键规则,则执行步骤S204。否则,则调用操作系统原始的读取例程函数。
S204、所述钩子函数触发预设的按键事件处理函数。
本实施例中,可在按键事件处理函数中实现用户按热键后的相应程序功能。
本发明实施例提供的热键实现方法,通过挂钩于按键处理驱动程序的读取例程函数的钩子函数,读取用户的按键操作信息,判断所述按键操作信息是否命中预设的热键规则,若所述按键操作信息命中预设的热键规则,则触发预设的按键事件处理函数,这样在驱动程序中不使用系统函数来实现热键功能,既能够避免由操作系统的控制使用所产生热键覆盖的问题,又不容易被恶意程序发现和破坏,有利于热键实现的安全性和稳定性。
图3为本发明热键实现方法实施例三的流程示意图。参看图3,本发明热键实现方法实施例,包括如下步骤:
S301、钩子函数截获操作系统发给按键处理驱动程序的读取按键操作信息的I/O请求包。
本实施例中,操作系统如需要获取用户的按键操作信息,则会向按键处理驱动程序发送读取按键操作信息的I/O请求包;其中,读取按键操作信息的I/O请求包可称为IRP读请求。按键处理驱动程序读取用户的按键操作信息后,将用户的按键操作信息作为所述I/O请求包的返回值返回给操作系统。
S302、所述钩子函数读取用户的按键操作信息。
本实施例中,所述钩子函数根据截获的所述读取按键操作信息的I/O请求包,实时读取用户的按键操作信息,在读取用户的按键操作信息之后,执行步骤S303。
S303、所述钩子函数调用所述钩子函数的读取完成回调函数。
本实施例中,完成回调函数,是指在某个请求完成时,才被调用的函数。所述钩子函数的读取完成回调函数,是指在所述钩子函数完成读取用户按键操作信息后,才被调用的函数。
所述钩子函数调用所述钩子函数的读取完成回调函数时,所述钩子函数将读取的所述按键操作信息填入所述I/O请求包中传给所述读取完成回调函数。
所述I/O请求包中有一个KEYBOARD_INPUT_DATA结构信息,这个结构就是用户按键数据结构,其包括表示按下或抬起的字段和表示键盘扫描码的字段。
KEYBOARD_INPUT_DATA结构中表示按下或抬起的字段,即Flags字段,如果是1,意为按下,0意为抬起。
KEYBOARD_INPUT_DATA结构中表示键盘扫描码的字段,即MakeCode字段,MakeCode叫为键盘扫描码,也就是用户按键的一个代码;如Alt键的扫描码是60,F8的扫描码是119。
S304、所述钩子函数的读取完成回调函数判断所述按键操作信息是否命中预设的热键规则。
本实施例中,所述热键规则预设在所述读取完成回调函数中。所述热键规则包括:按键组合、前后两个按键按下的时间间隔是否满足预定阈值。
比如,要实现一个Alt+F8的热键功能,且是按下键就触发的,相应的热键规则就是分别判断两个键的数据:
第一个键Alt,即是判断Flags等于1,且键盘扫描码等于60,再获取当前按键时间(由内核函数KeQueryTickCount获取),时间值命为t1;
第二个键F8,即是判断Flags等于1,且键盘扫描码等于119,再获取当前按键时间,时间值命为t2,由t2-t1是两次按键的时间差,时间差小于预定的2秒时,即可确定用户的按键操作信息命中预设的热键规则,然后执行步骤S305。
S305、所述钩子函数的读取完成回调函数触发预设的按键事件处理函数。
本实施例中,可在按键事件处理函数中实现用户按热键后的相应程序功能。
本实施例中,钩子函数在处理截获的IRP读请求时,可能正在等待用户的键盘输入操作,这时,是没有数据的。当所述钩子函数调用所述钩子函数的读取完成回调函数时,说明所述钩子函数已经取得了用户的键盘输入操作信息,此时,可准确获取用户的按键操作信息。本实施例中,通过所述钩子函数的读取完成回调函数判断所述按键操作信息是否命中预设的热键规则,能够准确及时地对用户的按键操作信息进行判断,有利于提高判断效率。
图4为本发明热键实现装置实施例一的结构示意图。参看图4,本发明热键实现装置实施例,用于挂钩于按键处理驱动程序的读取例程函数,所述热键实现装置,包括:读取模块11、判断模块12和触发模块13;其中,读取模块11,用于读取用户的按键操作信息;判断模块12,用于判断所述按键操作信息是否命中预设的热键规则;触发模块13,用于若所述按键操作信息命中预设的热键规则,则所述钩子函数触发预设的按键事件处理函数。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明热键实现装置实施例二的结构示意图。参看图5,本发明热键实现装置实施例,在前述热键实现装置实施例一的基础上,还包括:拦截模块14,用于截获操作系统发给所述按键处理驱动程序的读取按键操作信息的I/O请求包;其中,所述读取模块11,用于根据截获的所述读取按键操作信息的I/O请求包,读取用户的按键操作信息。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明热键实现装置实施例三的结构示意图。参看图6,本发明热键实现装置实施例,在前述热键实现装置实施例二的基础上,还包括:调用模块15,用于在所述读取模块读取用户的按键操作信息之后,调用读取完成回调函数,将读取的所述按键操作信息填入所述I/O请求包中传给所述读取完成回调函数;其中,所述读取完成回调函数中预设有所述热键规则,所述I/O请求包中包括的按键数据结构包括表示按下或抬起的字段和表示键盘扫描码的字段;
其中,所述判断模块12,具体用于通过所述读取完成回调函数判断所述按键操作信息是否命中预设的热键规则。
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在前述热键实现装置各实施例中,所述热键规则可以包括:按键组合、前后两个按键按下的时间间隔是否满足预定阈值。
本发明实施例还提供一种电子设备。图7为本发明电子设备一个实施例的结构示意图,可以实现本发明图1、图2或图3所示实施例的流程,如图7所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的热键实现方法。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放模块(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的防护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的防护范围之内。因此,本发明的防护范围应以权利要求的防护范围为准。
Claims (10)
1.一种热键实现方法,其特征在于,包括:
钩子函数读取用户的按键操作信息;其中,所述钩子函数挂钩于按键处理驱动程序的读取例程函数;
所述钩子函数判断所述按键操作信息是否命中预设的热键规则;
若所述按键操作信息命中预设的热键规则,则所述钩子函数触发预设的按键事件处理函数。
2.根据权利要求1所述的热键实现方法,其特征在于,所述操作系统为Windows操作系统;
所述钩子函数挂钩于按键处理驱动程序KbdClass中名称为IRP-MJ-READ的读取例程函数。
3.根据权利要求1或2所述的热键实现方法,其特征在于,在所述钩子函数读取用户的按键操作信息之前,所述方法还包括:
所述钩子函数截获操作系统发给所述按键处理驱动程序的读取按键操作信息的I/0请求包;
其中,所述钩子函数读取用户的按键操作信息包括:所述钩子函数根据截获的所述读取按键操作信息的I/0请求包,读取用户的按键操作信息。
4.根据权利要求3所述的热键实现方法,其特征在于,所述钩子函数读取用户的按键操作信息之后,所述方法还包括:
所述钩子函数调用所述钩子函数的读取完成回调函数,将读取的所述按键操作信息填入所述I/0请求包中传给所述读取完成回调函数;其中,所述读取完成回调函数中预设有所述热键规则,所述I/0请求包中包括的按键数据结构包括表示按下或抬起的字段和表示键盘扫描码的字段;
其中,所述钩子函数判断所述按键操作信息是否命中预设的热键规则,包括:
所述钩子函数的读取完成回调函数判断所述按键操作信息是否命中预设的热键规则。
5.根据权利要求1所述的热键实现方法,其特征在于,所述热键规则包括:按键组合、前后两个按键按下的时间间隔是否满足预定阈值。
6.一种热键实现装置,其特征在于,用于挂钩于按键处理驱动程序的读取例程函数,所述热键实现装置,包括:
读取模块,用于读取用户的按键操作信息;
判断模块,用于判断所述按键操作信息是否命中预设的热键规则;
触发模块,用于若所述按键操作信息命中预设的热键规则,则所述钩子函数触发预设的按键事件处理函数。
7.根据权利要求6所述的热键实现装置,其特征在于,所述操作系统为Windows操作系统;
所述热键实现装置用于挂钩于按键处理驱动程序KbdClass中名称为IRP-MJ-READ的读取例程函数。
8.根据权利要求6或7所述的热键实现装置,其特征在于,还包括:
拦截模块,用于截获操作系统发给所述按键处理驱动程序的读取按键操作信息的I/0请求包;
其中,所述读取模块,用于根据截获的所述读取按键操作信息的I/0请求包,读取用户的按键操作信息。
9.根据权利要求8所述的热键实现装置,其特征在于,所述装置还包括:
调用模块,用于在所述读取模块读取用户的按键操作信息之后,调用读取完成回调函数,将读取的所述按键操作信息填入所述I/0请求包中传给所述读取完成回调函数;其中,所述读取完成回调函数中预设有所述热键规则,所述I/0请求包中包括的按键数据结构包括表示按下或抬起的字段和表示键盘扫描码的字段;
其中,所述判断模块,具体用于通过所述读取完成回调函数判断所述按键操作信息是否命中预设的热键规则。
10.根据权利要求6所述的热键实现装置,其特征在于,所述热键规则包括:按键组合、前后两个按键按下的时间间隔是否满足预定阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610513043.9A CN106201492A (zh) | 2016-06-30 | 2016-06-30 | 一种热键实现方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610513043.9A CN106201492A (zh) | 2016-06-30 | 2016-06-30 | 一种热键实现方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106201492A true CN106201492A (zh) | 2016-12-07 |
Family
ID=57464225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610513043.9A Pending CN106201492A (zh) | 2016-06-30 | 2016-06-30 | 一种热键实现方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106201492A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647103A (zh) * | 2018-05-14 | 2018-10-12 | 上海泰砚通信技术有限公司 | 一种Linux系统的热键交互系统及方法 |
CN113961086A (zh) * | 2021-12-21 | 2022-01-21 | 统信软件技术有限公司 | 一种快捷键实现方法、计算设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517860A (zh) * | 2003-01-15 | 2004-08-04 | 英业达股份有限公司 | 计算机可执行的自定义键盘功能键的系统及方法 |
CN1901563A (zh) * | 2005-07-18 | 2007-01-24 | 乐金电子(中国)研究开发中心有限公司 | 多功能快捷键设置装置以及方法和具有该功能的移动终端 |
US20070061761A1 (en) * | 2005-09-12 | 2007-03-15 | Samsung Electronics Co., Ltd. | System and method for outputting icons in response to hot-key input |
CN101114323A (zh) * | 2006-07-28 | 2008-01-30 | 上海山丽信息安全有限公司 | 监控键盘钩子的装置 |
-
2016
- 2016-06-30 CN CN201610513043.9A patent/CN106201492A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517860A (zh) * | 2003-01-15 | 2004-08-04 | 英业达股份有限公司 | 计算机可执行的自定义键盘功能键的系统及方法 |
CN1901563A (zh) * | 2005-07-18 | 2007-01-24 | 乐金电子(中国)研究开发中心有限公司 | 多功能快捷键设置装置以及方法和具有该功能的移动终端 |
US20070061761A1 (en) * | 2005-09-12 | 2007-03-15 | Samsung Electronics Co., Ltd. | System and method for outputting icons in response to hot-key input |
CN101114323A (zh) * | 2006-07-28 | 2008-01-30 | 上海山丽信息安全有限公司 | 监控键盘钩子的装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647103A (zh) * | 2018-05-14 | 2018-10-12 | 上海泰砚通信技术有限公司 | 一种Linux系统的热键交互系统及方法 |
CN113961086A (zh) * | 2021-12-21 | 2022-01-21 | 统信软件技术有限公司 | 一种快捷键实现方法、计算设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10372320B2 (en) | Device and method for operating on touch screen, and storage medium | |
US20180043261A1 (en) | Method, apparatus and terminal for displaying prompt information | |
CN107241656A (zh) | 一种来电处理方法、装置、存储介质和终端 | |
US20090309768A1 (en) | Module, user interface, device and method for handling accidental key presses | |
CN101770399A (zh) | 一种电子设备及切换其操作系统桌面的方法、装置 | |
CN110417641A (zh) | 一种发送会话消息的方法与设备 | |
CN108958606B (zh) | 分屏显示方法、装置、存储介质和电子设备 | |
CN107870790A (zh) | 基于游戏应用的推送消息处理方法以及相关产品 | |
CN107707768A (zh) | 运行游戏应用的处理方法以及相关产品 | |
CN107368518A (zh) | 一种通知消息的管理方法及终端、计算机可读存储介质 | |
CN107656793A (zh) | 一种应用程序界面切换方法及移动终端 | |
CN107276602B (zh) | 射频干扰处理方法、装置、存储介质及终端 | |
CN108614655A (zh) | 分屏显示方法、装置、存储介质及电子设备 | |
CN110368676A (zh) | 触控信息的控制方法、装置、存储介质及电子设备 | |
CN112913199A (zh) | 数据传输方法及相关产品 | |
CN105045516A (zh) | 一种工作模式的切换方法和终端 | |
CN108459805A (zh) | 屏幕截图方法、移动终端及计算机可读存储介质 | |
CN106487887A (zh) | 一种实现快速登录的方法和终端 | |
CN108771861A (zh) | 一种游戏控制方法、移动终端及计算机可读存储介质 | |
CN106201492A (zh) | 一种热键实现方法、装置及电子设备 | |
CN108536388A (zh) | 分屏处理方法、装置、存储介质和电子设备 | |
US9479888B2 (en) | Methods and apparatus for implementing sound events | |
CN108628509A (zh) | 图文信息的位置调整方法、移动终端及可读存储介质 | |
CN109117061A (zh) | 一种输入操作处理方法、处理装置及智能终端 | |
CN108762639A (zh) | 一种物理按键的控制方法、移动终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190111 Address after: 519031 Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant after: Zhuhai Leopard Technology Co.,Ltd. Address before: 100085 East District, No. 33 Xiaoying West Road, Haidian District, Beijing Applicant before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161207 |