基于USB通信的打印机自动安装与识别方法及计算机介质与流程

文档序号:29571853发布日期:2022-04-09 04:09阅读:242来源:国知局
基于USB通信的打印机自动安装与识别方法及计算机介质与流程
基于usb通信的打印机自动安装与识别方法及计算机介质
技术领域
1.本发明属于打印设备技术领域,涉及一种基于usb通信的打印机自动安装与识别方法及计算机介质。


背景技术:

2.伴随物联网标识技术需求的日益扩大,标识打印机行业得到了快速崛起,并逐渐形成了竞争激烈的市场环境。作为标识技术领域的重要组成部分,标签打印机负责标识信息的打印输出,例如:二维码、条码、rfid、图片、文字等信息载体。标签打印机内置有丰富的外设接口,可与计算机或移动设备互连互通,用户可以通过编辑软件、网页、手机app等应用程序进行控制打印。
3.目前,大部分客户,仍然习惯于采用基于windows操作系统的计算机对打印机进行控制操作:用户通过usb数据线将打印机连接至计算机,安装对应的驱动,实现了应用程序对打印机的控制访问。
4.但随着标签打印机的普及推广,用户的使用场景越来越复杂,截至目前为止,用户对标签打印机驱动的使用场景大致分为三类:第一类是单设备运行模式——用户要求仅安装一个固定驱动,控制一台打印机;第二类是多设备运行模式——用户要求安装驱动后,驱动可探知新打印机的接入,并自动安装新驱动,从而建立起驱动与打印机一对一的映射相关;第三类是固定驱动数量模式——用户要求可远程安装驱动,驱动可探知新打印机的接入,并自动安装驱动,并且每个驱动的名称可以自定义,当驱动数量达到上限值时,不再为新接入的打印机创建驱动,但允许新打印机与现有驱动进行绑定。
5.目前,绝大部分国内品牌的标签打印机厂商均不具备开发标签打印机驱动的能力,美国海鸥科技是中国最大的标签打印机驱动提供商,通过调研发现,海欧所提供的打印机驱动安装技术,均要求用户人工参与,例如:安装过程要求用户选择产品型号、连接usb数据线、选择通信接口方式等操作。由于安装程序需要人工参与,无法满足远程自动化批量安装需求,且连接新打印机时,将自动创建新的副本,应用系统无法自动识别,需要人工手动修改新副本的名称,才能实现打印机与应用系统的绑定。由于新创建的副本,其打印机属性的参数是默认值,这就导致用户需要手动重新设置相关打印机属性参数;当用户多次更换新设备后,打印机系统将存在很多“僵尸”驱动副本;当更换打印机时,无法将新设备绑定到现有的打印机驱动上。
6.为了同时满足应用场景的需求,本发明提供了一种基于usb通信的打印机自动装驱动与识别方法。


技术实现要素:

7.本发明的目的在于提供一种基于usb通信的打印机自动安装与识别方法及计算机介质,实现打印机自动安装与识别。
8.为了达到上述目的,本发明的基础方案为:一种基于usb通信的打印机自动安装与
识别方法,包括如下步骤:
9.在安装包中设置一份配置文件,采集用户的特定需求,所述特定需求为单设备模式下的打印机安装与识别或在多设备模式下的打印机安装与识别;
10.利用安装包运行安装程序,注册维护服务程序并安装打印机监视器;
11.利用打印机监视器,探知打印机的连接状态并加载驱动;
12.当打印机连接至计算机上时,打印机监视器将受到windows操作系统的调度,打印机监视器的服务程序将得到windows系统的调度,该服务程序将读取配置信息,了解客户需求,执行对应的安装操作。
13.本基础方案的工作原理和有益效果在于:利用安装包程序了解客户的详细需求,通过创建打印机监视器来探知设备连接状态和安装驱动,实现驱动与打印机的一对一映射问题,以及新打印机与驱动的动态绑定问题,且安装过程无需人工参与,利于使用。
14.进一步,安装打印机监视器的方法如下:
15.调用api函数获取系统目录,并复制驱动文件中的监视器服务文件到该目录下;
16.创建一个打印机监视器,将监视器服务文件作为服务程序;
17.获取系统驱动目录,将驱动文件拷贝至系统驱动目录中;
18.添加打印机驱动程序,打印机驱动程序的配置文件就是系统驱动目录下的拷贝文件,打印机驱动程序绑定打印机监视器。
19.通过创建打印机监视器来探知设备连接状态和安装驱动,利于后续操作。
20.进一步,用户要求运行在单设备模式下的打印机安装与识别方法:
21.打印机监视器在探测到第一个新接入的打印机时,复制驱动文件中的监视器文件到系统目录,进行自定义命名;
22.调用api函数将其注册为打印机监视器,调用api函数创建自定义端口,并将打印机监视器与该端口进行绑定;
23.调用api函数,创建打印机驱动程序;
24.安装监视器将该打印机的usb设备实例路径注册到打印机图标对应的注册表路径下。
25.打印机图标负责承接用户的打印任务,并在操作系统的协助下,将任务过度到打印机驱动程序进行处理,并通过端口等途径,最终移交到打印机监视器进行处理,打印机监视器负责与打印机相互通信,完成打印输出。
26.进一步,当用户执行打印任务时,通过系列调度后,监视器服务文件得到执行,从注册表寻找打印机驱动图标对应的usb设备实例路径,并调用api函数创建usb设备句柄,向对应的打印机发起通信。
27.用户是将打印任务发送给打印机驱动图标,经过上述操作流程,最终将打印任务移交到打印机监视器,打印机监视器从注册表中提取该打印机图标对应的usb设备路径,从而建立起与打印机的连接。
28.进一步,当用户更换打印机时,打印机监视器将获取新打印机的usb设备实例路径,并更新该驱动图标的注册信息,从而保证用户打印任务时,该驱动图标向新打印机发起通信。
29.每一台打印机都具备唯一的固定身份属性,用户更换打印机时,设备可自动识别
新的打印机,利于使用。
30.进一步,用户要求运行在多设备模式下的打印机安装与识别方法:
31.打印机监视器探测到第一个新接入的打印机时,采用单设备模式为其创建对应的驱动图标;
32.当探测到第二个新进入的打印机时,采用单设备模式为其创建对应的驱动图标,驱动图标之间相互独立运行,并通过注册信息中注册表中各自对应的usb设备实例路径,建立一对一映射关系。
33.每台打印机共享一个打印机驱动程序,并拥有各自独立的端口、监视器和打印机驱动图标,从而自动对应识别多个打印机,满足不同的打印需求。
34.进一步,当用户要求运行在固定驱动数量模式下时,配置文件提供需要安装的驱动个数上限,以及对应的驱动图标的名称;
35.当打印机监视器探测到第一个新接入的打印机时,采用单设备模式安装对应的打印机图标,依次类推,直到安装的驱动图标个数达到上限值;
36.若还有新的打印机接入,打印机监视器采用进程通信技术,与维护服务程序建立联系,维护服务程序弹出人机交互界面,让用户选择打印机图标与新打印机绑定;
37.用户点击“绑定”后,打印机监视器更新注册表中的usb设备实例路径,更新驱动图标与打印机的映射关系,满足客户更换打印机的动态绑定需求。
38.根据用户需求的运行模式,进行更换打印机的自动绑定,操作简单,便于使用。
39.进一步,所述配置文件包含用户的应用场景类型,需要安装的打印机驱动图标个数,以及各自的自定义名称。
40.配置文件提供所需信息,便于后续操作。
41.本发明还提供一种计算机介质,所述计算机介质存储有执行本发明所述方法的指令。
42.计算机介质可执行所述的打印机自动安装与识别方法,且计算机介质可安装在多种设备上运行,便于设备自动安装识别打印机,使用方便。
附图说明
43.图1是本发明基于usb通信的打印机自动安装与识别方法的结构示意图;
44.图2是本发明基于usb通信的打印机自动安装与识别方法的单设备工作模式的结构示意图;
45.图3是本发明基于usb通信的打印机自动安装与识别方法的多设备工作模式的结构示意图;
46.图4是本发明基于usb通信的打印机自动安装与识别方法的驱动数量固定模式的结构示意图。
具体实施方式
47.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
48.在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
49.在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
50.为了弥补现有技术的缺陷,满足应用需求,本发明需要处理好以下技术问题:
51.*解决如何让windows为打印机创建唯一usb设备实例路径问题;
52.*解决安装程序如何了解客户的详细需求问题;
53.*解决安装过程无需人工参与问题;
54.*解决如何探知设备连接状态问题;
55.*解决如何实现驱动与打印机的一对一映射问题;
56.*解决如何实现新打印机与驱动的动态绑定问题。
57.一个打印机驱动的创建过程,需要四个步骤:
58.为该打印机创建监视器(monitor)、添加打印端口(port)、打印机驱动程序(driver)和打印机设备(printer)。
59.其中,打印机设备(printer)可以在“控制面板”中的“设备与打印机”进行查看,是以打印机图标的形态呈现,所以,为了便于后续说明,将打印机设备(printer)称之为打印机图标。
60.打印机驱动程序和端口可以点击任何一个打印机图标后,再点击“打印服务属性”,在弹出的对话框中的“端口”和“驱动程序”中查看。
61.用户是将打印任务发送给打印机图标,打印机图标通过打印机驱动、端口,最后再通过监视器,控制打印机进行信息打印。
62.如图1所示,本发明公开了一种基于usb通信的打印机自动安装与识别方法,包括如下步骤:
63.首先,本发明要解决打印机驱动图标与打印机一对一的映射问题,就要求每一台打印机在windows系统中,都具备唯一的固定的身份属性。所以要求打印机在usb枚举过程中,上报自身的usb vid、pid和sn(usb厂商编号、产品编号和设备序列号),windows将自动为其创建一个唯一的usb设备实例路径。
64.为了让打印机与windows系统的打印服务(print spooler)建立事件通知关系,打印机还需将自身定义为usb打印支持类别,并在枚举(在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数)过程中,作为usb描述符的部分内容,进行上报。所以,在打印机连接后,通过“设备管理器”中的“通用串行总线”,可以查看到“usb printer”选项,并通过该选项的属性信息,可查看到usb设备实例路径。
65.在安装包中设置一份配置文件,采集用户的特定需求,用于满足用户复杂的使用
场景,特定需求为单设备模式下的打印机安装与识别或在多设备模式下的打印机安装与识别。安装包包括安装程序(可执行文件)、卸载程序、配置文件、相关驱动文件和维护服务程序。配置文件包含用户的应用场景类型,需要安装的打印机驱动图标个数,以及各自的自定义名称。
66.利用安装包运行安装程序,注册维护服务程序并安装打印机监视器,维护服务程序负责接收来自打印机监视器的通知消息,并弹出人机交互界面,用以用户操作;
67.利用打印机监视器,探知打印机的连接状态并加载驱动;
68.当打印机连接至应用设备(即计算机)上时,打印机监视器受到windows操作系统的调度,打印机监视器的服务程序中的函数lcmenumports得到执行,该服务程序将读取配置信息,了解客户需求,在该函数中,执行对应的安装操作。
69.本发明的一种优选方案中,安装打印机监视器的方法如下:
70.调用api(application programming interface,应用程序接口)函数getsystemdirectory获取系统目录,并复制驱动文件中的监视器服务文件(例如:testmonitor.dll)到该目录下,监视器服务文件即是一个动态库文件;
71.调用api函数addmonitor,创建一个打印机监视器,将监视器服务文件testmonitor.dll作为服务程序,通过将testmonitor.dll作为addmonitor的配置参数来实现;打印机监视器是一个调用api函数addmonitor创建的自定义名称的monitor_info_2的结构体,该名称被操作系统视为监视器名称,它的属性就是monitor_info_2结构体里面的成员变量值;
72.安装程序进一步调用api函数getprinterdriverdirectory,获取系统驱动目录,将驱动文件拷贝至系统驱动目录中;
73.安装程序调用api函数addprinterdriver,添加打印机驱动程序,打印机驱动程序的配置文件就是系统驱动目录下的拷贝文件,打印机驱动程序绑定打印机监视器。到此,安装程序已完成安装任务,将探知打印机的连接状态和加载驱动的功能移交给了打印机监视器。当打印机连接至计算机时,打印机监视器将受到操作系统的调度,安装监视器的服务程序中的函数(lcmenumports)将得到执行,安装监视器将读取配置信息,了解客户需求,在该函数中,执行对应的安装操作。
74.本发明的一种优选方案中,如图2所示,用户要求运行在单设备模式下的打印机安装与识别方法:
75.打印机监视器在探测到第一个新接入的打印机时,复制驱动文件中的监视器文件到系统目录,进行自定义命名(例如:testmonitor0.dll);
76.调用api函数将其注册为打印机监视器,调用api函数xcvdata创建自定义端口(例如:test port 0),并将打印机监视器与该端口进行绑定,通过打开该监视器句柄,并将该句柄传递给xcvdata实现;
77.调用api函数addprinterdriver,创建打印机驱动程序;
78.调用api函数addprinter,创建打印机图标,业内称之为添加打印机设备,其结果是以打印机图标的形态呈现给用户,所以,为了与实际打印机设备加以区分,本发明将addprinter的创建结果称之为打印机图标;
79.安装监视器将该打印机的usb设备实例路径注册到打印机图标对应的注册表路径
下。
80.当用户执行打印任务时,通过系列调度后,监视器服务文件testmonitor0.dll得到执行,从注册表寻找打印机驱动图标对应的usb设备实例路径,并调用api函数createfile创建usb设备句柄,向对应的打印机发起通信。当用户更换打印机时,打印机监视器将获取新打印机的usb设备实例路径,并更新该驱动图标的注册信息,从而保证用户打印任务时,该驱动图标向新打印机发起通信。
81.本发明的一种优选方案中,如图3所示,用户要求运行在多设备模式下的打印机安装与识别方法:
82.打印机监视器探测到第一个新接入的打印机时,采用单设备模式为其创建对应的驱动图标;判定新打印机的依据:判定该打印机的usb设备实例路径是否已存在于打印机图标的注册路径下;
83.当探测到第二个新进入的打印机时,采用单设备模式为其创建对应的驱动图标,驱动图标之间相互独立运行,并通过注册表中各自对应的usb设备实例路径,建立一对一映射关系。
84.如图4所示,当用户要求运行在固定驱动数量模式下时,配置文件提供需要安装的驱动个数上限,以及对应的驱动图标的名称;
85.当打印机监视器探测到第一个新接入的打印机时,采用单设备模式安装对应的打印机图标,依次类推,直到安装的驱动图标个数达到上限值;
86.若还有新的打印机接入,打印机监视器采用进程通信技术,与维护服务程序建立联系,维护服务程序弹出人机交互界面,让用户选择打印机图标与新打印机绑定;进程通信技术,例如微信和钉钉就是两个独立的进程,如果现在想实现一个功能:在微信上点击一个按钮,钉钉就抖动一下,这就需要微信和钉钉相互通信,这就叫进程通信。本实施例的进程通信,就是打印监视器的服务文件和维护程序进行通信,让维护程序弹出人机界面,允许用户操作,以实现现有打印机驱动与当前连接的打印机设备进行一一绑定的映射;
87.用户点击“绑定”后,打印机监视器更新注册表中的usb设备实例路径,更新驱动图标与打印机的映射关系,满足客户更换打印机的动态绑定需求。
88.本发明还提供一种计算机介质,所述计算机介质存储有执行本发明所述方法的指令。计算机介质可执行所述的打印机自动安装与识别方法,且计算机介质可安装在多种设备上运行,便于设备自动安装识别打印机,使用方便。
89.本方案的安装程序兼容了三种用户使用场景,安装程序通过创建打印机监视器来探知设备连接状态和安装驱动,打印机的usb描述符号包含了usb设备序列号和usb打印支持类代号,每台打印机共享一个打印机驱动程序,并拥有各自独立的端口、监视器和打印机驱动图标。
90.可以通过创建windows服务或应用程序来替代本发明中的打印机监视器,如果打印机不定义为usb打印支持,但包含usb序列号描述符,可以采用windows服务或应用程序轮询的方式来探知设备连接状态。也可将其中一个打印机的监视器替代本发明的打印机监视器,通过修改配置文件等方面,替代本发明的注册表信息保存方式,以建立打印机驱动图标与打印机的一对一映射关系。
91.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示
例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
92.尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1