一种自动打开扩展通道的方法及装置的制造方法_2

文档序号:9667280阅读:来源:国知局
本发明实施例2提供的一种自动打开扩展通道的方法流程图;
[0057] 图3是本发明实施例3提供的一种自动打开扩展通道的方法流程图;
[0058] 图4是本发明实施例4提供的一种自动打开扩展通道的装置图。
【具体实施方式】
[0059] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0060] 实施例1
[0061] 本发明实施例1提供了一种自动打开扩展通道的方法,如图1所示,包括:当主设 备监控到有外接设备连接时,执行以下操作:
[0062] 步骤101 :主设备获取当前外接设备的设备信息,根据当前外接设备的设备信息 得到设备路径,根据设备路径得到当前外接设备的注册表路径;
[0063] 本实施例中,当主设备获取到当前外接设备的设备信息后,还包括:根据当前外接 设备的设备信息,判断当前外接设备是否需要打开扩展通道,如果是,则继续,否则结束;
[0064] 具体为:判断当前外接设备的设备信息中的GUID值是否为预设设备类的GUID值, 如果是,则继续,否则结束;
[0065] 其中,根据当前外接设备的设备信息得到设备路径,具体为:主设备将当前外接设 备的设备信息中的PID、VID和设备唯一标识按照第一预设格式组合得到设备路径;
[0066] 本实施例中,根据设备路径得到当前外接设备的注册表路径,具体为:主设备获取 主设备操作系统,根据设备路径和主设备操作系统得到当前外接设备的注册表路径,即将 设备路径填充至主设备操作系统对应的预设注册表路径信息中。
[0067] 步骤102 :主设备判断在当前外接设备的注册表路径下是否能够获取到当前外接 设备的预设子项,如果是,则执行步骤103,否则结束;
[0068] 本实施例中,当判断在当前外接设备的注册表路径下不能够获取到当前外接设备 的预设子项时,还包括:主设备在当前外接设备的注册表路径下创建预设子项,判断是否创 建成功,如果是,则将创建的预设子项的值设置为第一预设值,通道扩展成功,结束,否则报 错,结束。
[0069] 步骤103 :主设备将当前外接设备的预设子项的值设置为第一预设值,打开扩展 通道成功。
[0070] 实施例2
[0071] 本发明实施例2提供了一种自动打开扩展通道的方法,如图2所示,包括:
[0072] 步骤201:主设备(PC机或移动终端等)启动,创建监控外接设备插拔线程,监控 外接设备的插拔;
[0073] 本实施例还包括:主设备监控外接设备的插拔,当主设备监控到有外接设备插入 时,更新当前外接设备索引表,当监控到有外接设备拔出时,继续监控外接设备的插拔;本 实施例中,还包括:主设备创建显示界面对话框,当主设备监控到有外接设备插入时,在显 示界面对话框上显示当前外接设备的插入信息,当监控到有外接设备拔出时,在显示界面 对话框上显示当前外接设备的拔出信息;
[0074] 例如,当监控到有外接设备插入时,在显示界面对话框上显示外接设备名称等,如 显示智能卡读卡器,还包括显示插入的提示信息,如"AddingUSB\VID_096E&PID_0503\5&6 8EC627&0&10";
[0075] 当监控到有外接设备拔出时,在显示界面对话框上将已拔出的外接设备删除,还 包括显示拔出的提示信息:
[0076]如"RemovingUSB\VID_0A12&PID_0001\5&68EC627&0&r,;
[0077] 进一步的,本实施例还包括:主设备调用获取主设备名称函数 GetComputerName(),将获取到的主设备名称显示在显示界面对话框中。
[0078] 步骤202:主设备获取当前已安装的外接设备列表,并为之创建当前外接设备索 引表;
[0079]例如,本实施例中,创建的当前外接设备索引表为:
[0080]
[0081] 步骤203 :主设备获取所有外接设备的设备信息,根据预设设备类的GUID值,从当 前外接设备索引表中获取需要打开扩展通道的所有外接设备;
[0082] 本实施例中,外接设备的设备信息包括外接设备的设备名称、对应的GUID值、对 应的PID、VID的值以及设备唯一标识;
[0083] 优选的,本实施例中,预设设备类的GUID值为读卡器设备类的GUID值,例如,预设 设备类的⑶ID值为 0x50dd5230, 0xba8a,Oxlldl,Oxbf, 0x5d,0x00, 0x00, 0xf8, 0x05, 0xf5, 0x30 ;
[0084] 例如,本实施例中,根据预设设备类的GUID值,获取到需要打开扩展通道的所有 外接设备为:
[0085]
[0086] 进一步的,该步骤还包括:判断当前外接设备索引表中是否存在需要打开扩展通 道的外接设备,如果是,则执行步骤204,否则报错,结束。
[0087] 步骤204 :主设备从需要打开扩展通道的外接设备中获取首个需要打开扩展通道 的外接设备,将其作为当前外接设备;
[0088] 例如,获取到的当前外接设备为:
[0089]
[0090] 步骤205 :主设备获取当前外接设备的设备信息;
[0091] 本实施例中,获取到的当前外接设备的设备信息包括当前外接设备的GUID值、 PID值、VID值和设备唯一标识;
[0092] 步骤206 :主设备根据当前外接设备的设备信息得到设备路径,获取主设备操作 系统,根据设备路径和主设备操作系统得到当前外接设备的注册表路径;
[0093] 本实施例中,根据当前外接设备的设备信息得到设备路径,具体为:将当前外接设 备的PID、VID和设备唯一标识按照第一预设格式组合得到设备路径;
[0094] 本实施例中,根据设备路径得到注册表路径,具体为:将得到的设备路径按照第二 预设格式组合得到注册表路径;
[0095] 优选的,第一预设格式为将PID、VID和设备唯一标识以"\\"分开;第二预设格式 为将设备路径填充至主设备操作系统对应的预设注册表路径信息中;
[0096] 本实施例中,如果主设备操作系统为winXP,则将设备路径填充至第一预设注册 表路径信息中,其中,第一预设注册表路径信息为:
[0097]SYSTEM\\CurrentControlSet\\Enum\\USB\\PATH\\deviceParameters\\ EscapeCommandEnable;
[0098] 如果主设备操作系统为win7、win8或winlO,则将设备路径填充至第二预设注册 表路径信息中,其中,第二预设注册表路径信息为:
[0099]SYSTEM\\CurrentControlSet\\Enum\\USB\\PATH\\deviceParameters\\ WUDFUsbccidDriver;
[0100] 例如,获取到的当前外接设备的PID为0503、VID为096E和设备唯一标识为 5&68EC627&0&10,将三者按照第一预设格式组合得到的设备路径为:
[0101]PATH=0503\\096E\\5&68EC627&0&10;
[0102] 如果主设备操作系统为win8,则将设备路径填充至预设注册表路径信息中后得到 的当前外接设备的注册表路径为:
[0103]SYSTEM\\CurrentControlSet\\Enum\\USB\\0503\\096E\\5&68EC627&0&10\\ deviceParameters\\ffUDFUsbccidDriver;
[0104] 步骤207 :主设备根据得到的当前外接设备的注册表路径打开当前外接设备在注 册表中的位置;
[0105] 本实施例中,主设备通过调用函数:
[0106]LONGRegOpenKey(HKEYhKey,LPCTSTRlpSubKey,PHKEYphkResult);打开当前外 接设备在注册表中的位置,其中,参数IpSubKey即为当前外接设备的注册表路径;
[0107] 进一步的,本步骤还包括:主设备判断是否能够打开当前外接设备在注册表中的 位置,如果是,则执行步骤208,否则报错,结束。
[0108] 步骤208:主设备判断在当前外接设备的注册表路径下是否能够获取到当前外接 设备的预设子项,如果是,则执行步骤210,否则执行步骤209;
[0109] 本实施例中,优选的,注册表中当前外接设备的预设子项为: EscapeCommandEnable;
[0110] 步骤209:主设备在当前外接设备的注册表路径下创建预设子项,判断是否创建 成功,如果是,则将创建的预设子项的值设置为第一预设值,执行步骤212,否则报错,结 束;
[0111] 本实施例中,主设备通过调用创建预设子项函数:
[0112] LONGWINAPIRegCreateKeyEx (
[0113]_inHKEYhKey,
[0114] _inLPCTSTRIpSubKey,
[0115] DWORDReserved,
[0116] _inLPTSTRlpClass,
[0117] _inDWORDdwOptions,
[01
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1