一种通过自定义热键控制设备单元的方法以及系统与流程

文档序号:11261752阅读:160来源:国知局
一种通过自定义热键控制设备单元的方法以及系统与流程

本发明涉及键盘控制领域,尤其涉及一种通过自定义热键控制设备单元的方法以及系统。



背景技术:

通过热键控制设备单元的方法,现有技术中一般是基于笔记本/上网本的键盘上的一排功能键(fn+f1/f2…f12键),实现打开/关闭wifi,或者打开/关闭声音控制,打开/关闭屏幕背光控制等等。该实现方法都是利用ec(embeddedcontroller)与bios结合发送scancode/q_event来实现。虽然ec也可以实现厂家自定义热键,但局限于产品设计时的特定键盘,且功能键一般都是fn组合键,组合键上都标识功能图标,功能需要按图标功能去实现,产品一旦定型,就不能再自定义,如fn+f1表示进入睡眠,fn+f2表示静音切换,fn+f3表示显示切换等等。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种通过自定义热键控制设备单元的方法以及系统。

本发明解决其技术问题所采用的技术方案是:构造一种通过自定义热键控制设备单元的方法,用于superio环境,所述方法包括:

s1、将要控制的设备单元与cpu的相应的gpio口连接;

s2、确定控制该设备单元的热键组成;

s3、基于确定的该热键组成新建系统进程,所述系统进程在操作系统开机后自动加载并后台运行,所述系统进程用于实时获取键盘的按键信息;

s4、如判断按键信息为步骤s2的热键组成,则改变步骤s1中的gpio口的状态,从而触发设备单元的开启或关闭。

在本发明所述的通过自定义热键控制设备单元的方法中,所述步骤s3中是通过键盘钩子程序获取键盘的按键信息。

在本发明所述的通过自定义热键控制设备单元的方法中,所述步骤s3中所述的系统进程在操作系统开机后自动加载并后台运行包括:利用vbs脚本,使用wshshell对象,调用该新建的系统进程。

在本发明所述的通过自定义热键控制设备单元的方法中,如果某个gpio口控制一个设备单元,所述步骤s4中所述的改变步骤s1中的gpio口的状态包括:

如果正常状态下,步骤s1中的与设备单元连接的某个gpio口的状态为高电平,则将该gpio口拉低为低电平;如果正常状态下,步骤s1中的与设备单元连接的某个gpio口的状态为低电平,则将该gpio口拉高为高电平。

本发明还公开了一种通过自定义热键控制设备单元的系统,用于superio环境,包括cpu以及将要控制的设备单元,所述设备单元与cpu的相应的gpio口连接,所述cpu包括:

键盘监控单元,用于基于确定的控制该设备单元的热键组成新建系统进程,所述系统进程在操作系统开机后自动加载并后台运行,所述系统进程获取键盘的按键信息;

gpio控制单元,用于在判断所述按键信息为所述热键组成时,改变gpio口的状态,从而触发设备单元的开启或关闭。

在本发明所述的通过自定义热键控制设备单元的系统中,所述键盘监控单元是通过键盘钩子程序获取键盘的按键信息。

在本发明所述的通过自定义热键控制设备单元的系统中,所述的系统进程在操作系统开机后自动加载并后台运行包括:利用vbs脚本,使用wshshell对象,调用该新建的系统进程。

在本发明所述的通过自定义热键控制设备单元的系统中,如果某个gpio口控制一个设备单元,所述的改变gpio口的状态包括:

如果正常状态下,步骤s1中的与设备单元连接的某个gpio口的状态为高电平,则将该gpio口拉低为低电平;如果正常状态下,步骤s1中的与设备单元连接的某个gpio口的状态为低电平,则将该gpio口拉高为高电平。

实施本发明的通过自定义热键控制设备单元的方法以及系统,具有以下有益效果:本发明通过设备单元与cpu的相应的gpio口连接,新建系统进程获取键盘的按键信息,根据按键信息决定是否改变gpio口的状态,从底层实现热键控制设备单元,适合superio环境,用户可使用任何市面上的键盘,功能键也可以自定义热键组合。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明通过自定义热键控制设备单元的方法流程图;

图2是一个具体实施例中的系统结框图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。

参考图1,是本发明通过自定义热键控制设备单元的方法流程图。

本发明的通过自定义热键控制设备单元的方法,用于superio环境,superio芯片也叫i/o芯片,在486以上档次的主板上都有i/o控制电路。因为在南桥这样的高速设备和串行、并行接口、软盘驱动器及键盘鼠标等大量低速设备之间必定存在资源的不匹配,而需要经过转换和管理,而superio芯片则完成了该功能。本发明的所述方法包括:

s1、将要控制的设备单元与cpu的相应的gpio口连接;

s2、确定控制该设备单元的热键组成;

s3、基于确定的该热键组成新建系统进程,所述系统进程在操作系统开机后自动加载并后台运行,所述系统进程获取键盘的按键信息;

s4、如判断按键信息为步骤s2的热键组成,则改变步骤s1中的gpio口的状态,从而触发设备单元的开启或关闭。

步骤s3具体包括:通过一个键盘钩子程序wh_keyboard,获取键盘消息wm_keydown、wm_syskeydown,如if(p->vkcode==0x72&&getkeystate(vk_control)&0x8000)判断是自定义热键(ctrl+f3),如if(p->vkcode==0x73&&getkeystate(vk_control)&0x8000)判断是自定义热键(ctrl+f4)两个按键被按下后。

钩子的本质是一段用以处理系统消息的程序,通过系统调用,将其挂入系统。钩子的种类有很多,每种钩子可以截获并处理相应的消息,每当特定的消息发出,在到达目的窗口之前,钩子程序先行截获该消息、得到对此消息的控制权。此时在钩子函数中就可以对截获的消息进行加工处理,甚至可以强制结束消息的传递。而键盘钩子,只是为了截获键盘消息的。全局钩子可以捕获在windows平台下任意窗口上的键盘操作。广义钩子是指直接修改指令段获得控制的钩子。这种钩子更强大,理论上可以任意修改计算机的行为。

键盘钩子是一种可以监控键盘操作的指令。键盘钩子就是利用电脑一条一条执行程序的特点,在处理键盘系统代码段里把某一指令替换成一个跳转指令,让执行行为本发明的转移到自定义的一段代码,在此代码的结尾处再添加被替换掉的指令,最后转移到原来被替换处的下一条指令处让原来的系统继续运行。

在一个具体实施例中,步骤s3中所述的系统进程在操作系统开机后自动加载并后台运行包括:利用vbs脚本,使用wshshell对象,调用该新建的系统进程:

setwscriptobj=createobject("wscript.shell")

wscriptobj.run"新建系统进程",0

vbscript是visualbasicscript的简称,即visualbasic脚本语言,有时也被缩写为vbs。它是一种微软环境下的轻量级的解释型语言,它使用com组件、wmi、wsh、adsi访问系统中的元素,对系统进行管理。在windows操作系统中,vbscript可以在windowsscripthost的范围内运行。windows操作系统可以自动辨认和执行*.vbs。wscript.shell是wshshell对象的progid,创建wshshell对象可以运行程序、操作注册表、创建快捷方式、访问系统文件夹、管理环境变量。

另外,如果某个gpio口控制一个设备单元,所述步骤s4中所述的改变步骤s1中的gpio口的状态包括:如果正常状态下,步骤s1中的与设备单元连接的某个gpio口的状态为高电平,则将该gpio口拉低为低电平;如果正常状态下,步骤s1中的与设备单元连接的某个gpio口的状态为低电平,则将该gpio口拉高为高电平。

当然,也可以利用多个gpio口的组合控制多个设备单元。例如,n个gpio口,n≥2,则可以有2n种输出状态,n个gpio口通过一个数据选择器连接要控制的多个设备单元,可以设定n个gpio口组成的2n种输出状态中的其中一种输出状态代表关闭所有的设备单元,然后剩余的2n-1种输出状态控制2n-1个设备单元。以3个gpio口为例,则相应的连接一个8选1的数据选择器,则可以控制7种功能,例如wifi功能、背光功能、只读功能等等。3个gpio口的输出状态包括000-111,设定000代表没有任何热键按下,001代表wifi功能,002代表背光功能,003代表只读功能以此类推。

参考图2,是一个具体实施例中的系统结框图。下面以只读功能的热键设置为例说明本发明,该实施例实现在操作系统下通过自定义的热键去控制只读锁单元,使插入的ukey/u盘/cf卡/tf卡/sd卡具备单向只读功能。

硬件结构上,首先将cf卡、tf卡、sd卡分别连接usb三合一读卡器,然后再将ukey、u盘、usb三合一读卡器分别连接usb只读锁芯片。再按照步骤s1,将usb只读锁芯片的mini-pcie接口与cpu的gpio接口连接,以接收该gpio接口的disable信号。

然后,再执行步骤s2,确定控制该usb只读锁芯片的热键组成为:ctrl+f3开启该usb只读锁芯片,ctrl+f4关闭该usb只读锁芯片。

再根据步骤s3,基于键盘钩子程序获取键盘的按键信息,如果获取的键盘信息是ctrl+f3或者为ctrl+f4,则拉低或拉高gpio口的电平,从而触发usb只读锁芯片的开启或关闭。

以上仅仅是一个具体实例,同理可以利用该方法设置其他功能的热键。例如开启/关闭wifi,硬件设计需要把gpio接wifi芯片的mini-pcie接口上的disable信号;开启/关闭蓝牙,硬件设计需要把gpio接蓝牙芯片的mini-pcie接口上的disable信号;开启/关闭4g模块,硬件设计需要把gpio接4g模块的mini-pcie接口上的disable信号;调节屏幕背光,硬件设计需要外搭电路把gpio接在屏幕输出的电路上。

本发明还公开了一种通过自定义热键控制设备单元的系统,用于superio环境,包括cpu以及将要控制的设备单元,所述设备单元与cpu的相应的gpio口连接,所述cpu包括:

键盘监控单元,用于基于确定的控制该设备单元的热键组成新建系统进程,所述系统进程在操作系统开机后自动加载并后台运行,所述系统进程获取键盘的按键信息;

gpio控制单元,用于在判断所述按键信息为所述热键组成时,改变gpio口的状态,从而触发设备单元的开启或关闭。

其中,所述键盘监控单元是通过键盘钩子程序获取键盘的按键信息。

其中,所述的系统进程在操作系统开机后自动加载并后台运行包括:利用vbs脚本,使用wshshell对象,调用该新建的系统进程。

其中,如果某个gpio口控制一个设备单元,所述的改变gpio口的状态包括:如果正常状态下,步骤s1中的与设备单元连接的某个gpio口的状态为高电平,则将该gpio口拉低为低电平;如果正常状态下,步骤s1中的与设备单元连接的某个gpio口的状态为低电平,则将该gpio口拉高为高电平。

当然,也可以利用多个gpio口的组合控制多个设备单元。例如,n个gpio口,n≥2,则可以有2n种输出状态,n个gpio口通过一个数据选择器连接要控制的多个设备单元,可以设定n个gpio口组成的2n种输出状态中的其中一种输出状态代表关闭所有的设备单元,然后剩余的2n-1种输出状态控制2n-1个设备单元。以3个gpio口为例,则相应的连接一个8选1的数据选择器,则可以控制7种功能,例如wifi功能、背光功能、只读功能等等。3个gpio口的输出状态包括000-111,设定000代表没有任何热键按下,001代表wifi功能,002代表背光功能,003代表只读功能以此类推。

综上所述,实施本发明的通过自定义热键控制设备单元的方法以及系统,具有以下有益效果:本发明通过设备单元与cpu的相应的gpio口连接,新建系统进程获取键盘的按键信息,根据按键信息决定是否改变gpio口的状态,从底层实现热键控制设备单元,适合superio环境,用户可使用任何市面上的键盘,功能键也可以自定义热键组合。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1