CN105426330B - 一种自动打开扩展通道的方法及装置 - Google Patents
一种自动打开扩展通道的方法及装置 Download PDFInfo
- Publication number
- CN105426330B CN105426330B CN201510744916.2A CN201510744916A CN105426330B CN 105426330 B CN105426330 B CN 105426330B CN 201510744916 A CN201510744916 A CN 201510744916A CN 105426330 B CN105426330 B CN 105426330B
- Authority
- CN
- China
- Prior art keywords
- external equipment
- equipment
- current
- current external
- module
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Monitoring And Control Of Power-Distribution Networks (AREA)
- Selective Calling Equipment (AREA)
Abstract
本发明公开了一种自动打开扩展通道的方法及装置,属于信息安全领域,所述方法包括:当主设备监控到有外接设备连接时,获取当前外接设备的设备信息,根据当前外接设备的设备信息得到设备路径,根据设备路径得到当前外接设备的注册表路径,当判断在当前外接设备的注册表路径下能够获取到当前外接设备的预设子项时,将所述当前外接设备的预设子项的值设置为第一预设值,打开扩展通道成功。采用本发明的技术方案,能够实现对插入的设备实时的检测,而且不需要每次再手动设置,简单方便,效率更高。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种自动打开扩展通道的方法及装置。
背景技术
现有技术中,在Windows平台下,通常打开扩展通道和智能卡读卡器通讯,必须首先知道硬件的VID和PID。然后手动设置VID和PID组成一个路径,用RegOpenKey打开后,在当前路径从0索引开始遍历下一级的目录设备实例ID,获得设备实例ID后,把获得的VID、PID、设备实例ID和根目录路径组成一个路径,然后再用RegOpenKey函数打开新获得的路径,对注册表操作,比较耗时,而且很繁琐。
发明内容
本发明的目的是为了解决现有技术中存在的问题,提供了一种自动打开扩展通道的方法及装置。
本发明采用的技术方案是:一种自动打开扩展通道的方法,包括:当主设备监控到有外接设备连接时,执行以下操作:
步骤S1:所述主设备获取当前外接设备的设备信息,根据所述当前外接设备的设备信息得到设备路径,根据所述设备路径得到当前外接设备的注册表路径;
步骤S2:所述主设备判断在所述当前外接设备的注册表路径下是否能够获取到当前外接设备的预设子项,如果是,则执行步骤S3,否则结束;
步骤S3:所述主设备将所述当前外接设备的预设子项的值设置为第一预设值,打开扩展通道成功。
所述步骤S1之前,还包括:
步骤a1:所述主设备创建监控外接设备插拔线程;
步骤a2:所述主设备监控外接设备的插拔,当监控到有外接设备连接时,执行步骤S1,当监控到有外接设备断开连接时,继续执行步骤a2。
所述步骤S1之前还包括:所述主设备获取当前已安装的外接设备列表,并为之创建外接设备索引表;
所述步骤S1中,所述主设备获取所述外接设备的设备信息,具体为:所述主设备从所述外接设备索引表中获取所述外接设备的设备信息;
所述方法还包括:所述主设备创建监控外接设备插拔线程,监控外接设备的插拔,当监控到有外接设备连接时,更新所述外接设备索引表。
所述步骤S3中,所述将所述当前外接设备的预设子项的值设置为所述第一预设值之后,还包括:所述主设备判断所述外接设备索引表中是否还有未进行通道扩展的外接设备,如果是,则将其中一个未进行通过扩展的外接设备作为当前外接设备,返回步骤S1,否则结束。
所述判断所述外接设备索引表中是否还有未进行通道扩展的外接设备,具体为:判断所述外接设备索引表中是否存在已扩展标识未置位的外接设备,如果是,则将其中一个已扩展标识未置位的外接设备作为当前外接设备,否则结束;
所述步骤S3中,所述将所述当前外接设备的预设子项的值设置为所述第一预设值之后,还包括:所述主设备将所述当前外接设备的已扩展标识置位。
所述步骤S1中,所述主设备获取当前外接设备的设备信息之后,还包括:根据所述当前外接设备的设备信息,判断所述当前外接设备是否需要打开扩展通道,如果是,则继续,否则结束。
所述判断所述当前外接设备是否需要打开扩展通道,具体为:判断当前外接设备的设备信息中的GUID值是否为预设设备类的GUID值,如果是,则继续,否则结束。
所述步骤S1中,所述根据所述当前外接设备的设备信息得到设备路径,具体为:所述主设备将当前外接设备的设备信息中的PID、VID和设备唯一标识按照第一预设格式组合得到设备路径。
所述步骤S1中,所述根据所述设备路径得到所述当前外接设备的注册表路径,具体为:所述主设备获取主设备操作系统,根据所述设备路径和所述主设备操作系统得到当前外接设备的注册表路径。
所述根据所述设备路径和所述主设备操作系统得到当前外接设备的注册表路径,具体为:将所述设备路径填充至所述主设备操作系统对应的预设注册表路径信息中。
所述步骤S2中,判断为否时,还包括:所述主设备在所述当前外接设备的注册表路径下创建预设子项,判断是否创建成功,如果是,则将创建的预设子项的值设置为第一预设值,打开扩展通道成功,结束,否则报错,结束。
所述方法还包括:所述主设备创建显示界面对话框,当所述主设备监控到有外接设备连接时,在所述显示界面对话框上显示当前外接设备的插入信息,当所述主设备监控到有外接设备拔出时,在所述显示界面对话框上显示当前外接设备的拔出信息。
一种自动打开扩展通道的装置,包括:
监控模块,用于监控与外接设备的连接;
获取模块,用于当所述监控模块监控到有外接设备连接时,获取当前外接设备的设备信息;
处理模块:用于当所述获取模块获取到当前外接设备的设备信息时,根据所述当前外接设备的设备信息得到设备路径,根据所述设备路径得到当前外接设备的注册表路径;
第一判断模块,用于当所述处理模块得到当前外接设备的注册表路径时,判断在所述当前外接设备的注册表路径下是否能够获取到所述当前外接设备的预设子项;
设置模块,用于当所述第一判断模块判断为是时,将所述当前外接设备的预设子项的值设置为第一预设值。
所述监控模块包括:第一创建单元和第一监控单元;
所述第一创建单元,用于创建监控外接设备插拔线程;
所述第一监控单元,用于监控外接设备的插拔,当监控到有外接设备连接时,触发所述获取模块,当监控到有外接设备断开连接时,继续触发所述第一监控单元。
所述装置还包括创建模块和更新模块;
所述创建模块,用于获取当前已安装的外接设备列表,并为之创建外接设备索引表;
所述获取模块,具体用于从所述外接设备索引表中获取所述外接设备的设备信息;
所述更新模块,用于当所述监控模块监控到有外接设备连接时,更新所述外接设备索引表。
所述装置还包括:第二判断模块和设定模块;
所述第二判断模块,用于当所述设置模块设置完成后,判断所述外接设备索引表中是否还有未进行通道扩展的外接设备;
所述设定模块,用于当所述第二判断模块判断为是时,将其中一个未进行通过扩展的外接设备作为当前外接设备,触发所述获取模块。
所述第二判断模块,具体用于判断所述外接设备索引表中是否存在已扩展标识未置位的外接设备;
所述设定模块,具体用于当所述第二判断模块判断为是时,将其中一个已扩展标识未置位的外接设备作为当前外接设备,触发所述获取模块;
所述装置还包括置位模块,用于当设置模块设置完成时,将所述当前外接设备的已扩展标识置位。
所述装置还包括:第三判断模块,用于当所述获取模块获取到当前外接设备的设备信息时,根据所述当前外接设备的设备信息,判断所述当前外接设备是否需要打开扩展通道,判断为是时,触发所述处理模块。
所述第三判断模块,具体用于判断当前外接设备的设备信息中的GUID值是否为预设设备类的GUID值,判断为是时,触发所述处理模块。
所述处理模块中,所述根据所述当前外接设备的设备信息得到设备路径,具体用于将当前外接设备的设备信息中的PID、VID和设备唯一标识按照第一预设格式组合得到设备路径。
所述处理模块中,所述根据所述设备路径得到当前外接设备的注册表路径,具体用于获取主设备操作系统,根据所述设备路径和所述主设备操作系统得到当前外接设备的注册表路径。
所述处理模块中,所述根据所述设备路径和所述主设备操作系统得到当前外接设备的注册表路径,具体用于将所述设备路径填充至所述主设备操作系统对应的预设注册表路径信息中。
所述装置还包括创建模块,用于当所述第一判断模块判断为否时,在所述当前外接设备的注册表路径下创建预设子项,判断是否创建成功;
所述设置模块,还用于当所述创建模块创建预设子项成功时,将创建的预设子项的值设置为第一预设值。
所述装置还包括:显示模块;所述显示模块包括第二创建单元和第一显示单元;
所述第二创建单元,用于创建显示界面对话框;
所述第一显示单元,用于当所述监控模块监控到有外接设备连接时,在所述显示界面对话框上显示当前外接设备的插入信息;用于当所述监控模块监控到有外接设备拔出时,在所述显示界面对话框上显示当前外接设备的拔出信息。
本发明取得的有益效果是:采用windows驱动程序的操作对注册表进行处理,能够实现对插入的设备实时的检测,而且不需要每次再手动设置,简单方便,效率更高。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的一种自动打开扩展通道的方法流程图;
图2是本发明实施例2提供的一种自动打开扩展通道的方法流程图;
图3是本发明实施例3提供的一种自动打开扩展通道的方法流程图;
图4是本发明实施例4提供的一种自动打开扩展通道的装置图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例1提供了一种自动打开扩展通道的方法,如图1所示,包括:当主设备监控到有外接设备连接时,执行以下操作:
步骤101:主设备获取当前外接设备的设备信息,根据当前外接设备的设备信息得到设备路径,根据设备路径得到当前外接设备的注册表路径;
本实施例中,当主设备获取到当前外接设备的设备信息后,还包括:根据当前外接设备的设备信息,判断当前外接设备是否需要打开扩展通道,如果是,则继续,否则结束;
具体为:判断当前外接设备的设备信息中的GUID值是否为预设设备类的GUID值,如果是,则继续,否则结束;
其中,根据当前外接设备的设备信息得到设备路径,具体为:主设备将当前外接设备的设备信息中的PID、VID和设备唯一标识按照第一预设格式组合得到设备路径;
本实施例中,根据设备路径得到当前外接设备的注册表路径,具体为:主设备获取主设备操作系统,根据设备路径和主设备操作系统得到当前外接设备的注册表路径,即将设备路径填充至主设备操作系统对应的预设注册表路径信息中。
步骤102:主设备判断在当前外接设备的注册表路径下是否能够获取到当前外接设备的预设子项,如果是,则执行步骤103,否则结束;
本实施例中,当判断在当前外接设备的注册表路径下不能够获取到当前外接设备的预设子项时,还包括:主设备在当前外接设备的注册表路径下创建预设子项,判断是否创建成功,如果是,则将创建的预设子项的值设置为第一预设值,通道扩展成功,结束,否则报错,结束。
步骤103:主设备将当前外接设备的预设子项的值设置为第一预设值,打开扩展通道成功。
实施例2
本发明实施例2提供了一种自动打开扩展通道的方法,如图2所示,包括:
步骤201:主设备(PC机或移动终端等)启动,创建监控外接设备插拔线程,监控外接设备的插拔;
本实施例还包括:主设备监控外接设备的插拔,当主设备监控到有外接设备插入时,更新当前外接设备索引表,当监控到有外接设备拔出时,继续监控外接设备的插拔;本实施例中,还包括:主设备创建显示界面对话框,当主设备监控到有外接设备插入时,在显示界面对话框上显示当前外接设备的插入信息,当监控到有外接设备拔出时,在显示界面对话框上显示当前外接设备的拔出信息;
例如,当监控到有外接设备插入时,在显示界面对话框上显示外接设备名称等,如显示智能卡读卡器,还包括显示插入的提示信息,如“Adding USB\VID_096E&PID_0503\5&68EC627&0&10”;
当监控到有外接设备拔出时,在显示界面对话框上将已拔出的外接设备删除,还包括显示拔出的提示信息:
如“Removing USB\VID_0A12&PID_0001\5&68EC627&0&1”;
进一步的,本实施例还包括:主设备调用获取主设备名称函数GetComputerName(),将获取到的主设备名称显示在显示界面对话框中。
步骤202:主设备获取当前已安装的外接设备列表,并为之创建当前外接设备索引表;
例如,本实施例中,创建的当前外接设备索引表为:
步骤203:主设备获取所有外接设备的设备信息,根据预设设备类的GUID值,从当前外接设备索引表中获取需要打开扩展通道的所有外接设备;
本实施例中,外接设备的设备信息包括外接设备的设备名称、对应的GUID值、对应的PID、VID的值以及设备唯一标识;
优选的,本实施例中,预设设备类的GUID值为读卡器设备类的GUID值,例如,预设设备类的GUID值为0x50dd5230,0xba8a,0x11d1,0xbf,0x5d,0x00,0x00,0xf8,0x05,0xf5,0x30;
例如,本实施例中,根据预设设备类的GUID值,获取到需要打开扩展通道的所有外接设备为:
进一步的,该步骤还包括:判断当前外接设备索引表中是否存在需要打开扩展通道的外接设备,如果是,则执行步骤204,否则报错,结束。
步骤204:主设备从需要打开扩展通道的外接设备中获取首个需要打开扩展通道的外接设备,将其作为当前外接设备;
例如,获取到的当前外接设备为:
步骤205:主设备获取当前外接设备的设备信息;
本实施例中,获取到的当前外接设备的设备信息包括当前外接设备的GUID值、PID值、VID值和设备唯一标识;
步骤206:主设备根据当前外接设备的设备信息得到设备路径,获取主设备操作系统,根据设备路径和主设备操作系统得到当前外接设备的注册表路径;
本实施例中,根据当前外接设备的设备信息得到设备路径,具体为:将当前外接设备的PID、VID和设备唯一标识按照第一预设格式组合得到设备路径;
本实施例中,根据设备路径得到注册表路径,具体为:将得到的设备路径按照第二预设格式组合得到注册表路径;
优选的,第一预设格式为将PID、VID和设备唯一标识以“\\”分开;第二预设格式为将设备路径填充至主设备操作系统对应的预设注册表路径信息中;
本实施例中,如果主设备操作系统为win XP,则将设备路径填充至第一预设注册表路径信息中,其中,第一预设注册表路径信息为:
SYSTEM\\CurrentControlSet\\Enum\\USB\\PATH\\device Parameters\\EscapeCommandEnable;
如果主设备操作系统为win 7、win8或win10,则将设备路径填充至第二预设注册表路径信息中,其中,第二预设注册表路径信息为:
SYSTEM\\CurrentControlSet\\Enum\\USB\\PATH\\device Parameters\\WUDFUsbccidDriver;
例如,获取到的当前外接设备的PID为0503、VID为096E和设备唯一标识为5&68EC627&0&10,将三者按照第一预设格式组合得到的设备路径为:
PATH=0503\\096E\\5&68EC627&0&10;
如果主设备操作系统为win8,则将设备路径填充至预设注册表路径信息中后得到的当前外接设备的注册表路径为:
SYSTEM\\CurrentControlSet\\Enum\\USB\\0503\\096E\\5&68EC627&0&10\\device Parameters\\WUDFUsbccidDriver;
步骤207:主设备根据得到的当前外接设备的注册表路径打开当前外接设备在注册表中的位置;
本实施例中,主设备通过调用函数:
LONG RegOpenKey(HKEY hKey,LPCTSTR lpSubKey,PHKEY phkResult);打开当前外接设备在注册表中的位置,其中,参数lpSubKey即为当前外接设备的注册表路径;
进一步的,本步骤还包括:主设备判断是否能够打开当前外接设备在注册表中的位置,如果是,则执行步骤208,否则报错,结束。
步骤208:主设备判断在当前外接设备的注册表路径下是否能够获取到当前外接设备的预设子项,如果是,则执行步骤210,否则执行步骤209;
本实施例中,优选的,注册表中当前外接设备的预设子项为:EscapeCommandEnable;
步骤209:主设备在当前外接设备的注册表路径下创建预设子项,判断是否创建成功,如果是,则将创建的预设子项的值设置为第一预设值,执行步骤212,否则报错,结束;
本实施例中,主设备通过调用创建预设子项函数:
LONG WINAPI RegCreateKeyEx(
__in HKEY hKey,
__in LPCTSTR lpSubKey,
DWORD Reserved,
__in LPTSTR lpClass,
__in DWORD dwOptions,
__in REGSAM samDesired,
__in LPSECURITY_ATTRIBUTES lpSecurityAttributes,
__out PHKEY phkResult,
__out LPDWORD lpdwDisposition);在当前外接设备的注册表路径下创建预设子项,其中,参数lpSubKey即为当前外接设备的注册表路径;
步骤210:主设备判断当前外接设备的预设子项的值是否为第一预设值,如果是,则执行步骤212,否则执行步骤211;
优选的,第一预设值为1;
步骤211:主设备将当前外接设备的预设子项的值设置为第一预设值,执行步骤212;
进一步的,本步骤还包括:主设备判断设置当前外接设备的预设子项的值是否成功,如果是,则执行步骤212,否则报错,结束。
步骤212:主设备关闭注册表,判断需要打开扩展通道的所有外接设备中是否还有未打开扩展通道的外接设备,如果是,则返回执行步骤205,否则结束。
本实施例中,步骤204至步骤212可以替换为:
主设备对需要打开扩展通道的每个外接设备均执行以下操作:
步骤a1:主设备每个当前外接设备的设备信息,打开注册表主键,根据每个外接设备的设备信息得到设备路径,根据设备路径得到每个外接设备的注册表路径;
步骤a2:主设备根据得到的每个外接设备的注册表路径打开每个外接设备在注册表中的位置,判断在每个外接设备的注册表路径下是否能够获取到每个外接设备的预设子项,如果是,则执行步骤a4,否则执行步骤a3;
步骤a3:主设备在每个外接设备的注册表路径下创建预设子项,判断是否创建成功,如果是,则执行步骤a4,否则报错,结束;
步骤a4:主设备判断每个外接设备的预设子项的值是否为第一预设值,如果是,则结束,否则将每个外接设备的预设子项的值均设置为第一预设值,结束。
本实施例中,预先在外接设备索引表中设置有已扩展标识,用于标识当前外接设备是否已打开扩展通道,预先约定,当已扩展标识置位时,表示当前外接设备已打开扩展通道,当已扩展标识复位时,标识当前外接设备未打开扩展通道;
例如,步骤202中创建的当前外接设备索引表为:
步骤203至步212还可以替换为:
步骤b1:主设备从需要打开扩展通道的外接设备中获取一个已扩展标识复位的外接设备,作为当前外接设备,获取当前外接设备的设备信息,打开注册表主键,根据当前外接设备的设备信息得到设备路径,根据设备路径得到当前外接设备的注册表路径;
步骤b2:主设备根据得到的当前外接设备的注册表路径打开当前外接设备在注册表中的位置,判断在当前外接设备的注册表路径下是否能够获取到当前外接设备的预设子项,如果是,则执行步骤b4,否则执行步骤b3;
步骤b3:主设备在当前外接设备的注册表路径下创建预设子项,判断是否创建成功,如果是,则执行步骤b4,否则报错,结束;
步骤b4:主设备判断当前外接设备的预设子项的值是否为第一预设值,如果是,则执行步骤b5,否则将当前外接设备的预设子项的值设置为第一预设值,执行步骤b5。
步骤b5:主设备将当前外接设备的已扩展标识置位,结束;
本实施例中,还包括:主设备将当前外接设备的已扩展标识置位后,还可以将记录当前外接设备的设备唯一标识(或PID+VID)的已扩展标识置位,当前外接设备被拔出后,该记录信息仍保存,如果当前外接设备再次与主设备连接时,主设备在步骤103创建当前外接设备索引表时直接根据该记录信息将当前外接设备的已扩展标识置位,即不需要再次对该当前设备执行扩展操作,同理,如果注册表中当前外接设备的预设子项的值发生变化时,同样要记录该变化,即将已扩展标识复位,下次当前外接设备插入时重新执行扩展操作。
实施例3
本发明实施例3提供了一种自动打开扩展通道的方法,如图3所示,包括:
步骤301:主设备创建监控外接设备插拔线程;
步骤302:主设备监控外接设备的插拔,当主设备监控到有外接设备插入时,执行步骤303,当监控到有外接设备拔出时,继续执行步骤302;
步骤303:主设备获取插入的当前外接设备的设备信息,根据当前外接设备的设备信息,判断当前外接设备是否为需要扩展通道,如果是,则执行步骤304,否则返回步骤302;
步骤304:主设备打开注册表主键,根据当前外接设备的设备信息得到设备路径,获取主设备操作系统,根据设备路径和主设备操作系统得到当前外接设备的注册表路径;
步骤305:主设备根据得到的当前外接设备的注册表路径打开当前外接设备在注册表中的位置;
步骤306:主设备判断在当前外接设备的注册表路径下是否能够获取到当前外接设备的预设子项,如果是,则执行步骤308,否则执行步骤307;
步骤307:主设备在当前外接设备的注册表路径下创建预设子项,判断是否创建成功,如果是,则将创建的预设子项的值设置为第一预设值,执行步骤310,否则报错,结束;
步骤308:主设备判断当前外接设备的预设子项的值是否为第一预设值,如果是,则执行步骤310,否则执行步骤309;
步骤309:主设备将当前外接设备的预设子项的值设置为第一预设值,执行步骤310;
步骤310:主设备关闭注册表,返回步骤302。
实施例4
本发明实施例4提供了一种自动打开扩展通道的装置,如图4所示,包括:
监控模块,用于监控与外接设备的连接;
获取模块,用于当监控模块监控到有外接设备连接时,获取当前外接设备的设备信息;
处理模块,用于当获取模块获取到当前外接设备的设备信息时,根据当前外接设备的设备信息得到设备路径,根据设备路径得到当前外接设备的注册表路径;
第一判断模块,用于当处理模块得到当前外接设备的注册表路径时,判断在当前外接设备的注册表路径下是否能够获取到当前外接设备的预设子项;
设置模块,用于当第一判断模块判断为是时,将当前外接设备的预设子项的值设置为第一预设值。
本实施例中,监控模块包括:第一创建单元和第一监控单元;
第一创建单元,用于创建监控外接设备插拔线程;
第一监控单元,用于监控外接设备的插拔,当监控到有外接设备连接时,触发获取模块,当监控到有外接设备断开连接时,继续触发第一监控单元。
本实施例中,该装置还包括创建模块和更新模块;
创建模块,用于获取当前已安装的外接设备列表,并为之创建外接设备索引表;
获取模块,具体用于从外接设备索引表中获取外接设备的设备信息;
更新模块,用于当监控模块监控到有外接设备连接时,更新外接设备索引表。
本实施例中,该装置还包括:第二判断模块和设定模块;
第二判断模块,用于当设置模块设置完成后,判断外接设备索引表中是否还有未进行通道扩展的外接设备;
设定模块,用于当第二判断模块判断为是时,将其中一个未进行通过扩展的外接设备作为当前外接设备,触发获取模块。
其中,第二判断模块,具体用于判断外接设备索引表中是否存在已扩展标识未置位的外接设备;
设定模块,具体用于当第二判断模块判断为是时,将其中一个已扩展标识未置位的外接设备作为当前外接设备,触发获取模块;
该装置还包括置位模块,用于当设置模块设置完成时,将当前外接设备的已扩展标识置位。
进一步的,该装置还包括:第三判断模块,用于当获取模块获取到当前外接设备的设备信息时,根据当前外接设备的设备信息,判断当前外接设备是否需要打开扩展通道,判断为是时,触发处理模块。
其中,第三判断模块,具体用于判断当前外接设备的设备信息中的GUID值是否为预设设备类的GUID值,判断为是时,触发处理模块。
处理模块中,根据当前外接设备的设备信息得到设备路径,具体用于将当前外接设备的设备信息中的PID、VID和设备唯一标识按照第一预设格式组合得到设备路径。
处理模块中,根据设备路径得到当前外接设备的注册表路径,具体用于获取主设备操作系统,根据设备路径和主设备操作系统得到当前外接设备的注册表路径。
进一步的,处理模块中,根据设备路径和主设备操作系统得到当前外接设备的注册表路径,具体用于将设备路径填充至主设备操作系统对应的预设注册表路径信息中。
本实施例中,装置还包括创建模块,用于当第一判断模块判断为否时,在当前外接设备的注册表路径下创建预设子项,判断是否创建成功;
设置模块,还用于当创建模块创建预设子项成功时,将创建的预设子项的值设置为第一预设值。
本实施例中,装置还包括:显示模块;显示模块包括第二创建单元和第一显示单元;
第二创建单元,用于创建显示界面对话框;
第一显示单元,用于当监控模块监控到有外接设备连接时,在显示界面对话框上显示当前外接设备的插入信息;用于当监控模块监控到有外接设备拔出时,在显示界面对话框上显示当前外接设备的拔出信息。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (22)
1.一种自动打开扩展通道的方法,其特征在于,包括:当主设备监控到有外接设备连接时,执行以下操作:
步骤S1:所述主设备获取当前外接设备的设备信息,根据所述当前外接设备的设备信息得到设备路径,根据所述设备路径得到当前外接设备的注册表路径;
步骤S2:所述主设备判断在所述当前外接设备的注册表路径下是否能够获取到当前外接设备的预设子项,如果是,则执行步骤S3,否则结束;
步骤S3:所述主设备将所述当前外接设备的预设子项的值设置为第一预设值,打开扩展通道成功;
所述步骤S2中,判断为否时,还包括:所述主设备在所述当前外接设备的注册表路径下创建预设子项,判断是否创建成功,如果是,则将创建的预设子项的值设置为所述第一预设值,打开扩展通道成功,结束,否则报错,结束。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1之前,还包括:
步骤a1:所述主设备创建监控外接设备插拔线程;
步骤a2:所述主设备监控外接设备的插拔,当监控到有外接设备连接时,执行步骤S1,当监控到有外接设备断开连接时,继续执行步骤a2。
3.根据权利要求1所述的方法,其特征在于,
所述步骤S1之前还包括:所述主设备获取当前已安装的外接设备列表,并为之创建外接设备索引表;
所述步骤S1中,所述主设备获取所述外接设备的设备信息,具体为:所述主设备从所述外接设备索引表中获取所述外接设备的设备信息;
所述方法还包括:所述主设备创建监控外接设备插拔线程,监控外接设备的插拔,当监控到有外接设备连接时,更新所述外接设备索引表。
4.根据权利要求3所述的方法,其特征在于,所述步骤S3中,所述将所述当前外接设备的预设子项的值设置为所述第一预设值之后,还包括:所述主设备判断所述外接设备索引表中是否还有未打开扩展通道的外接设备,如果是,则将其中一个未打开扩展通道的外接设备作为当前外接设备,返回步骤S1,否则结束。
5.根据权利要求4所述的方法,其特征在于,所述判断所述外接设备索引表中是否还有未打开扩展通道的外接设备,具体为:判断所述外接设备索引表中是否存在已扩展标识未置位的外接设备,如果是,则将其中一个已扩展标识未置位的外接设备作为当前外接设备,否则结束;
所述步骤S3中,所述将所述当前外接设备的预设子项的值设置为所述第一预设值之后,还包括:所述主设备将所述当前外接设备的已扩展标识置位。
6.根据权利要求1所述的方法,其特征在于,所述步骤S1中,所述主设备获取当前外接设备的设备信息之后,还包括:根据所述当前外接设备的设备信息,判断所述当前外接设备是否需要打开扩展通道,如果是,则继续,否则结束。
7.根据权利要求6所述的方法,其特征在于,所述判断所述当前外接设备是否需要打开扩展通道,具体为:判断当前外接设备的设备信息中的GUID值是否为预设设备类的GUID值,如果是,则继续,否则结束。
8.根据权利要求1所述的方法,其特征在于,所述步骤S1中,所述根据所述当前外接设备的设备信息得到设备路径,具体为:所述主设备将当前外接设备的设备信息中的PID、VID和设备唯一标识按照第一预设格式组合得到设备路径。
9.根据权利要求1所述的方法,其特征在于,所述步骤S1中,所述根据所述设备路径得到所述当前外接设备的注册表路径,具体为:所述主设备获取主设备操作系统,根据所述设备路径和所述主设备操作系统得到当前外接设备的注册表路径。
10.根据权利要求9所述的方法,其特征在于,所述根据所述设备路径和所述主设备操作系统得到当前外接设备的注册表路径,具体为:将所述设备路径填充至所述主设备操作系统对应的预设注册表路径信息中。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述主设备创建显示界面对话框,当所述主设备监控到有外接设备连接时,在所述显示界面对话框上显示当前外接设备的插入信息,当所述主设备监控到有外接设备拔出时,在所述显示界面对话框上显示当前外接设备的拔出信息。
12.一种自动打开扩展通道的装置,其特征在于,包括:
监控模块,用于监控与外接设备的连接;
获取模块,用于当所述监控模块监控到有外接设备连接时,获取当前外接设备的设备信息;
处理模块,用于当所述获取模块获取到当前外接设备的设备信息时,根据所述当前外接设备的设备信息得到设备路径,根据所述设备路径得到当前外接设备的注册表路径;
第一判断模块,用于当所述处理模块得到当前外接设备的注册表路径时,判断在所述当前外接设备的注册表路径下是否能够获取到所述当前外接设备的预设子项;
设置模块,用于当所述第一判断模块判断为是时,将所述当前外接设备的预设子项的值设置为第一预设值;
所述装置还包括创建模块,用于当所述第一判断模块判断为否时,在所述当前外接设备的注册表路径下创建预设子项,判断是否创建成功;
所述设置模块,还用于当所述创建模块创建预设子项成功时,将创建的预设子项的值设置为所述第一预设值。
13.根据权利要求12所述的装置,其特征在于,所述监控模块包括:第一创建单元和第一监控单元;
所述第一创建单元,用于创建监控外接设备插拔线程;
所述第一监控单元,用于监控外接设备的插拔,当监控到有外接设备连接时,触发所述获取模块,当监控到有外接设备断开连接时,继续触发所述第一监控单元。
14.根据权利要求12所述的装置,其特征在于,所述装置还包括更新模块;
所述创建模块,还用于获取当前已安装的外接设备列表,并为之创建外接设备索引表;
所述获取模块,具体用于从所述外接设备索引表中获取所述外接设备的设备信息;
所述更新模块,用于当所述监控模块监控到有外接设备连接时,更新所述外接设备索引表。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:第二判断模块和设定模块;
所述第二判断模块,用于当所述设置模块设置完成后,判断所述外接设备索引表中是否还有未进行通道扩展的外接设备;
所述设定模块,用于当所述第二判断模块判断为是时,将其中一个未进行通过扩展的外接设备作为当前外接设备,触发所述获取模块。
16.根据权利要求15所述的装置,其特征在于,
所述第二判断模块,具体用于判断所述外接设备索引表中是否存在已扩展标识未置位的外接设备;
所述设定模块,具体用于当所述第二判断模块判断为是时,将其中一个已扩展标识未置位的外接设备作为当前外接设备,触发所述获取模块;
所述装置还包括置位模块,用于当所述设置模块设置完成时,将所述当前外接设备的已扩展标识置位。
17.根据权利要求12所述的装置,其特征在于,所述装置还包括:第三判断模块,用于当所述获取模块获取到当前外接设备的设备信息后,根据所述当前外接设备的设备信息,判断所述当前外接设备是否需要打开扩展通道,判断为是时,触发所述处理模块。
18.根据权利要求17所述的装置,其特征在于,
所述第三判断模块,具体用于判断当前外接设备的设备信息中的GUID值是否为预设设备类的GUID值,判断为是时,触发所述处理模块。
19.根据权利要求12所述的装置,其特征在于,
所述处理模块中,所述根据所述当前外接设备的设备信息得到设备路径,具体用于将当前外接设备的设备信息中的PID、VID和设备唯一标识按照第一预设格式组合得到设备路径。
20.根据权利要求12所述的装置,其特征在于,
所述处理模块中,所述根据所述设备路径得到当前外接设备的注册表路径,具体用于获取主设备操作系统,根据所述设备路径和所述主设备操作系统得到当前外接设备的注册表路径。
21.根据权利要求20所述的装置,其特征在于,
所述处理模块中,所述根据所述设备路径和所述主设备操作系统得到当前外接设备的注册表路径,具体用于将所述设备路径填充至所述主设备操作系统对应的预设注册表路径信息中。
22.根据权利要求12所述的装置,其特征在于,所述装置还包括:显示模块;所述显示模块包括第二创建单元和第一显示单元;
所述第二创建单元,用于创建显示界面对话框;
所述第一显示单元,用于当所述监控模块监控到有外接设备连接时,在所述显示界面对话框上显示当前外接设备的插入信息;用于当所述监控模块监控到有外接设备拔出时,在所述显示界面对话框上显示当前外接设备的拔出信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510744916.2A CN105426330B (zh) | 2015-11-05 | 2015-11-05 | 一种自动打开扩展通道的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510744916.2A CN105426330B (zh) | 2015-11-05 | 2015-11-05 | 一种自动打开扩展通道的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105426330A CN105426330A (zh) | 2016-03-23 |
CN105426330B true CN105426330B (zh) | 2018-08-28 |
Family
ID=55504546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510744916.2A Active CN105426330B (zh) | 2015-11-05 | 2015-11-05 | 一种自动打开扩展通道的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105426330B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678984A (zh) * | 2017-09-26 | 2018-02-09 | 厦门市美亚柏科信息股份有限公司 | Usb端口映射方法及计算机可读存储介质 |
CN108647053B (zh) * | 2018-04-28 | 2021-04-06 | 新华三云计算技术有限公司 | 注册表子键的去重方法及装置 |
CN111610983B (zh) * | 2020-05-04 | 2023-03-31 | 同智伟业软件股份有限公司 | 一种多ukey智能集成识别的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101105778A (zh) * | 2007-08-20 | 2008-01-16 | 中兴通讯股份有限公司 | 外设设备接入状态检测方法 |
CN101950252A (zh) * | 2009-07-10 | 2011-01-19 | 中兴通讯股份有限公司 | 一种usb数据卡自启动方法和系统 |
CN101963950A (zh) * | 2010-09-30 | 2011-02-02 | 北京飞天诚信科技有限公司 | 一种定位设备所连接的usb端口的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012033148A (ja) * | 2010-06-30 | 2012-02-16 | Sony Corp | 情報処理装置、情報処理方法およびプログラム |
-
2015
- 2015-11-05 CN CN201510744916.2A patent/CN105426330B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101105778A (zh) * | 2007-08-20 | 2008-01-16 | 中兴通讯股份有限公司 | 外设设备接入状态检测方法 |
CN101950252A (zh) * | 2009-07-10 | 2011-01-19 | 中兴通讯股份有限公司 | 一种usb数据卡自启动方法和系统 |
CN101963950A (zh) * | 2010-09-30 | 2011-02-02 | 北京飞天诚信科技有限公司 | 一种定位设备所连接的usb端口的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105426330A (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426330B (zh) | 一种自动打开扩展通道的方法及装置 | |
CN105681846B (zh) | 一种机顶盒进行蓝牙匹配的方法及机顶盒 | |
CN108491124B (zh) | 一种界面处理方法及其设备、存储介质、终端 | |
CN101488989A (zh) | 一种在手机上管理任务的方法 | |
CN108206889A (zh) | 一种信息输入方法及装置和终端设备 | |
CN106951142A (zh) | 息屏显示方法及装置 | |
CN108008992B (zh) | 一种输入操作处理方法、处理装置及计算机可读存储介质 | |
CN106850719A (zh) | 一种数据传输方法及装置 | |
CN105955894A (zh) | 一种用于智能终端的摄像头外接方法、智能终端 | |
EP3226140A2 (en) | Data processing method, data processing device, terminal and smart device | |
US20120144080A1 (en) | Method and Device for Monitoring Running State of Card | |
CN104965702B (zh) | 一种智能终端的多窗口运行方法、装置及智能终端 | |
CN104202199A (zh) | 检测接口状态并据接口状态处理接口故障的方法及系统 | |
CN102970422B (zh) | 一种实现安全拔出sd卡的方法及手机 | |
CN107643903A (zh) | 一种服务器自动进入bios配置界面的方法及装置 | |
CN106302957A (zh) | 一种终端反失联的控制方法、装置及相关设备 | |
CN105958562A (zh) | 用于电子设备的充电保护方法、装置及电子设备 | |
CN104516704A (zh) | 一种多屏系统中应用激活控制方法、装置及移动终端 | |
CN104468695A (zh) | 用于管理多个装置中的应用的系统和方法 | |
CN104007944A (zh) | 一种调试打印方法及调试打印系统 | |
CN103685657B (zh) | 电子终端测试方法及装置 | |
CN111639312B (zh) | 反调试方法、装置、存储介质及电子装置 | |
CN101620579B (zh) | Windows中的磁盘访问控制系统及其方法 | |
EP2355409A1 (en) | Network management device | |
CN106657316A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |