技术领域 本发明涉及一种卸载系统、一种卸载方法、以及一种用于卸载装置驱动程序如扫描 仪驱动程序或打印机驱动程序等驱动程序的计算机程序。 背景技术 众所周知,现有技术中的传统安装系统在操作系统上安装应用程序。这种类型的安 装系统实现将具有一个或更多成分(程序或数据)的应用程序中的每个这种成分复制到 适当位置并在操作系统的控制下为执行应用程序设定所需数据的过程。 现有技术中的一种已知的类似安装系统在操作系统的管理下将在操作系统控制下使 用一种设备所需的设备驱动程序复制到适当位置,并记录在操作系统中操作该设备驱动 程序所必需的数据。 但是,当从个人计算机中使用设有打印机功能、扫描仪功能、传真机功能以及类似 功能(还有通过将扫描仪功能和打印机功能组合来实现的复制功能)的多功能设备时, 如同日本未经审查的专利申请公布号HEI-10-97485中揭示的,需要在操作系统中安装用 于从个人计算机中使用多功能设备的打印机驱动程序、扫描仪驱动程序、传真机驱动程 序以及应用程序。 发明内容 当为了使用单个设备而安装多个软件程序时,需要大量的时间和精力来分别安装每 个程序。因此,可以想到一种安装系统,该安装系统通过将多个软件程序组合在单个程 序包中并在如CD-ROM的存储媒体上存储该程序包来自动安装使用多功能设备中的功能 所需的所有软件程序。在安装过程中,每个软件程序分别从程序包中被取出并被依次安 装。另一种可以想到的安装系统在安装过程中提示使用者选择和输入用于设备驱动程序 的设置应用程序,同时在输入选择的基础上完成设置。 例如,当使用设在通常在个人计算机上使用的操作系统中的可以想到的安装系统 时,具有A型型号名并设有打印机功能和扫描仪功能的第一多功能设备(设备1)被连接 到个人计算机的默认端口,端口A。当安装设备驱动程序(扫描仪驱动程序A和打印机 驱动程序A)时,安装系统进入注册表中的设置数据,该注册表是一个在操作系统中用于 存储设置数据的区域,如图1(a)中所说明的。 换句话说,如图1(a)所示,安装系统产生一个用于系统注册表(扫描仪)110的 功能指定设备1键(扫描仪的注册表键)111。该系统将"扫描仪驱动程序A"设置为驱 动程序指定数据111a,将"扫描仪接口A"设置为输入/输出接口指定数据111b,以及将" 扫描仪A-1"设置为扫描仪名111c并在功能指定设备1键(扫描仪的注册表键)111下存 储这些数据。用于扫描仪的输入/输出指定数据可以想象是STI驱动程序(标准文本接口 驱动程序)名和STI驱动程序应该与其进行通信的扫描仪的IP地址。该系统确定扫描仪 驱动程序A是否已经存储在操作系统的扫描仪驱动程序的存储区域中。如果驱动程序尚 未存储在存储区域中,那么存储在CD-ROM或类似物上的扫描仪驱动程序A被复制到扫 描仪驱动程序的存储区域,并发出一个请求给操作系统来将扫描仪驱动程序A设置到端 口A。同样地,如图1(a)所示,安装系统产生一个用于系统注册表(打印机)120的功 能指定设备1键(打印机的注册表键)121。该系统将"打印机驱动程序A"设置为驱动 程序指定数据121a,将"打印机接口A"设置为输入/输出接口指定数据121b,以及将"打 印机A-1"设置为打印机名121c并在功能指定设备1键(打印机的注册表键)121下存储 该数据。用于打印机的输入/输出接口指定数据可以想象是端口名或指定端口的同类物, 该端口是记录在操作系统上的逻辑接口。该端口通过端口驱动程序被存储在操作系统中, 该端口驱动程序为接口驱动程序。该系统接着确定打印机驱动程序A是否已经存储在操 作系统的打印机驱动程序的存储区域中。如果驱动程序尚未存储在存储区域中,那么系 统从CD-ROM或类似物上将打印机驱动程序A复制到打印机驱动程序的存储区域,并发 出一个请求给操作系统来将打印机驱动程序A设置到端口A。 此外,如图1(a)所示,安装系统将"A型"设为型号名131并在销售商注册表130 下存储该数据。 结果,如果使用者点击由操作系统管理的文件夹(扫描仪),那么操作系统根据设 置数据在个人计算机的显示设备上显示图1(b)所示的文件夹(扫描仪)窗口150。在 该窗口150中显示的是在本例中为"扫描仪A-1"的扫描仪名和图标151a。当使用者点击该 图标时,操作系统执行一个程序来获得与对应于扫描仪A-1的端口A连接的第一多功能 设备的状态。使用扫描仪驱动程序A和扫描仪接口A,从端口A获取该状态,并显示在 使用者的监视器中。该操作系统也显示一个对话框,使使用者能够观察和修改用于扫描 仪A-1的设置,存储由使用者在该显示对话框中修改的设置,并用设备驱动程序A(扫 描仪驱动程序A)经由端口A将这些变化输出到第一多功能设备。此外,如果操作系统 从指定扫描仪A-1的应用程序接收到一个扫描请求,那么该操作系统可以经由端口A并 根据扫描仪驱动程序A和扫描仪接口A控制该第一多功能设备执行扫描操作。同样地, 当使用者点击由操作系统管理的文件夹(打印机)时,操作系统根据设置数据在个人计 算机的显示设备上显示图1(b)所示的文件夹(打印机)窗口160。在该窗口160中显 示的是在本例中为"打印机A-1"的打印机名和图标161a。当使用者点击该图标时,执行一 个程序来获得与对应于打印机A-1的端口A连接的第一多功能设备的状态。使用打印机 驱动程序A和打印机接口A,从端口A获取该状态,并显示在使用者的监视器中。该操 作系统也显示一个对话框,使使用者能够观察和修改用于打印机A-1的设置,存储由使 用者在该显示对话框中修改的设置,并使用设备驱动程序A(打印机驱动程序A)经由端 口A将这些变化输出到第一多功能设备。此外,如果操作系统从指定打印机A-1的应用 程序中接收到一个打印请求,那么该操作系统可以经由端口A使用打印机驱动程序A和 打印机接口A控制该第一多功能设备来执行打印操作。此外,当与第一多功能设备(A 型)的型号相同的第二多功能设备(设备2)被连接到第一多功能设备也连接到的个人计 算机的端口B时,使用者为了使设备2连接到端口B将数据输入到安装系统。由于已经 安装了扫描仪驱动程序A和打印机驱动程序B,所以安装系统跳过复制这些驱动程序的 过程并执行一个程序来设置注册表并发出一个请求给操作系统来将设备驱动程序设置到 端口B。结果,如图2(a)所示,将功能指定设备2键(扫描仪的注册表键)112添加到 系统注册表(扫描仪)110。该系统同样在功能指定设备2键112下将"扫描仪驱动程序 A"设置为驱动程序指定数据112a,将"扫描仪接口B"设置为输入/输出接口指定数据 112b,并将"扫描仪A-2"设置为扫描仪名112c。同样地,将功能指定设备2键(打印机的 注册表键)122添加到系统注册表(打印机)120。该系统在功能指定设备2的键122下 将"打印机驱动程序A"设置为驱动程序指定数据122a,将"打印机接口B"设置为输入/ 输出接口指定数据122b,并将"打印机A-2"设置为打印机名122c。 这样,当相同的设备驱动程序已经被首先安装时,除已经设置的连接点以外,用于 一个设备驱动程序的单独连接点(在本例中指端口)可以被添加和设置。为每个连接点 管理用于设备驱动程序的设置数据。在上述例子中,如图2(b)所示,产生用于每个连 接点的图标151a和151b,使使用者能够为了选择将使用的设备从应用程序或操作系统中 选择对应其中一个图标的连接点。 采用该安装系统,甚至当为使用如多功能设备的单个设备而必须安装多个软件程序 时,也可以容易地安装使用设备所需的软件程序。因此,使用者可以从个人计算机中快 速使用该设备。 此外,在现有技术中同时知道一种用于指定和卸载多个已安装的应用程序的卸载系 统。当多个应用程序已被安装时,该卸载系统实现删除应用程序的所有单独成分并删除 操作该应用程序所需的所有设置数据的过程。 但是,由于在安装后不可能指定设备的每个功能的所有设备驱动程序的组合,所以 不可能同时卸载所有的多个设备驱动程序。 例如,当打印机驱动程序、扫描仪驱动程序和传真机驱动程序被安装在一个操作系 统上时,在安装过程中只有操作这些设备驱动程序所需的数据被设置在操作系统中。因 此,不可能指定这些设备驱动程序的组合,从而不能同时卸载所有的设备驱动程序。 考虑到上述原因,本发明的一个目的是提供一种能使使用者容易地卸载使用单个设 备所需的多个设备驱动程序的卸载系统。 为了达到上述和其它目的,本发明提供了一种卸载设备,包括:安装装置、附加 安装装置、卸载请求接收装置和卸载装置。该安装装置用于在操作系统所管理的设备注 册区域中,执行用于记录和设备驱动程序指定数据相关联的功能指定的设备指定数据的 安装程序,该功能指定的设备指定数据是能使操作系统能识别设备功能的数据,该设备 驱动程序指定数据是用于指定设备驱动程序作为用于控制设备执行该功能的程序的数 据。该附加安装装置用于实现用于在和设备指定数据相关的附加的注册区域中记录功能 指定的设备指定数据和设备驱动程序指定数据两者中至少一种数据的附加安装过程。该 卸载请求接收装置用于实现一个过程以接收来自把该设备作为目标的使用者的卸载请 求。该卸载装置用于当通过卸载请求接收装置接收到来自使用者的对该设备的卸载请求 时,通过使用存储在和指出作为卸载目标的设备的设备指定数据相关的附加的注册区域 内的功能指定的设备指定数据和设备驱动程序指定数据两者中的至少一种数据,执行从 设备注册区域去除和作为卸载目标的设备的功能指定的设备指定数据相关的设备驱动程 序指定数据的过程。因此,甚至当为控制单个设备执行多个功能需要多个驱动程序时, 使用者可以通过简单地指出一个指定设备来同时卸载那个设备的多个设备驱动程序。因 此,本发明提供了一种不使使用者感到不便的方便的卸载系统。 该安装装置可以在设备注册区域中,实现记录进一步与输入/输出接口指定数据相关 的功能指定的设备指定数据,该输入/输出接口指定数据为指定用于执行通信来控制该设 备的输入/输出接口的数据。通过被与功能指定的设备指定数据相关的该输入/输出接口指 定数据所指定的输入/输出接口,该安装装置可以使操作系统能够找到记录在设备注册区 域中的功能指定的设备指定数据,并能够通过用由和该功能指定的设备指定数据相关的 设备驱动程序指定数据所指定的设备驱动程序控制设备来执行该设备具有的功能。 该卸载装置可以通过进一步从设备注册区域去除与该设备的功能指定的设备指定数 据相关的输入/输出接口指定数据而执行该卸载过程,从而防止操作系统控制设备执行功 能。该卸载装置可以通过去除输入/输出接口指定数据和设备驱动程序指定数据的条目, 基于功能指定的设备指定数据实现卸载过程,该输入/输出接口指定数据和设备驱动程序 指定数据存储在和功能指定的设备指定数据相关的设备注册区域中,该功能指定的设备 指定数据存储在和作为卸载目标的设备的设备指定数据相关的附加注册区域中。该卸载 装置可以通过去除设备驱动程序指定数据和输入/输出接口指定数据的条目,基于设备驱 动程序指定数据实现卸载过程,该设备驱动程序指定数据和输入/输出接口指定数据存储 在与设备驱动程序指定数据相关的设备注册区域中,该设备驱动程序指定数据存储在和 作为卸载目标的设备的设备指定数据相关的附加注册区域中。这样,可以通过指定该将 卸载的设备的指定数据或功能指定的设备指定数据去除在安装的过程中记录在操作系统 中的输入/输出接口指定数据和设备驱动程序指定数据。 在安装过程中,设备可以判断是否有必要为例如通过接收使用者输入的指令控制单 个设备而安装多个设备驱动程序。 或相反,该卸载设备可以进一步包括用于储存安装程序数据的安装程序存储装置, 该安装程序数据包括设备驱动程序是否为了设备具有的功能而被安装的指示。该安装装 置可以判断设备驱动程序是否为使操作系统能够控制设备执行功能而被安装,并根据存 储在安装程序存储装置中的安装程序在必要时安装设备驱动程序。 例如,可以通过检测设备的连接状态来自动检测作为卸载目标的指定设备。 或者,该设备可以包括多个装置。卸载请求接收装置可以通过提示使用者选择至少 一个设备作为卸载目标,接收来自使用者的卸载请求。卸载装置可以实现作为使用者选 择的卸载目标的设备的卸载过程。 采用这种结构,使用者可以指定将卸载的设备。 当使用者选择两个或更多设备作为卸载目标时,卸载装置可以实现使用者所选择的 所有两个或更多设备的卸载过程。 采用这种结构,使用者可以控制卸载系统全部卸载多个选择的设备。 卸载设备可以进一步包括显示器。附加安装装置可以实现另一个附加安装过程,以 在和每个设备的设备指定数据相关的附加注册区域中记录设备识别数据,该设备识别数 据使使用者能够识别每个设备。卸载请求接收装置可以实现一个过程来控制显示器显示 存储在附加注册区域中的设备识别数据,并提示使用者基于被显示的设备识别数据选择 至少一个设备作为卸载的目标。 由于设备识别数据被显示,所以使用者可以容易地选择将卸载的指定设备。 输入/输出接口指定数据可以被用作设备识别数据。 卸载请求接收装置可以从附加注册区域读出对应选定设备的功能指定的设备指定数 据,并控制显示器显示设备驱动程序指定数据。 这样,使用者可以容易地知道哪个功能指定设备和由此的哪个设备驱动程序是卸载 目标。 卸载设备可以进一步包括一个显示器。附加安装装置可以在相互相关的附加注册区 域中实现另一个附加安装过程,记录使使用者能够识别每个设备的设备识别数据和指定 每个设备型号的型号数据。卸载请求接收装置可以实现一个过程来控制显示器显示存储 在附加注册区域中的型号指定数据,且提示使用者选择型号指定数据作为卸载的目标, 并将所有被存储在附加注册区域中的设备识别数据识别的设备设置成作为卸载目标的设 备,该附加注册区域和使用者选择作为安装目标的型号指定数据相关。 这样,可以根据型号卸载设备驱动程序。此外,如果使用者想要为一个指定型号卸 载所有的设备驱动程序,那么例如,使用者可以通过指定型号来简单实现。 卸载请求接收装置可以控制显示器显示和型号指定数据相关的存储在和型号指定数 据相关的附加注册区域中的设备识别数据。 使用者可以知道每个设备的型号。使用者可以容易地选择指定设备或指定型号作为 卸载目标。 设备的功能可以至少包括打印机功能、图像扫描仪功能和传真通信功能中的一种功 能。 因此,本发明可以被应用到操作系统经由输入/输出接口指示设备处理图像数据的系 统中。例如,本发明还可以被应用到任何需要安装多个设备驱动程序的设备中。 该设备可以是具有两个或更多不同功能的多功能设备。 这样,本发明可以被应用到操作系统用每个功能的设备驱动程序来控制设备以便实 现设备具有的每个功能的系统中。 此外,例如MS Windows(注册商标)可以被用作操作系统,扫描仪注册表或打印 机注册表可以被用作设备注册区域,扫描仪注册表键或打印机注册表键可以被用作功能 指定的设备指定数据,端口名和STI驱动程序名+地址可以被用作输入/输出接口指定数 据,网络端口+地址或USB端口可以被用作输入/输出接口,扫描仪驱动程序名和打印机 驱动程序名可以被用作设备驱动程序指定数据,且安装注册表可以被用作附加存储区域。 此外,安装可以是一个将数据输入到注册表中的过程,卸载可以是一个将数据从注册表 中去除的过程,设备指定数据可以是一个键名,安装程序存储装置可以是一个inf文件, 设备识别数据可以是一个端口名,且型号指定数据可以是一个型号名。根据另一个方面, 本发明提供了一种卸载设备,包括:操作系统,存储器,安装部分,附加安装部分,卸 载请求接收部分和卸载部分。安装部分执行在操作系统管理的设备注册区域中记录和设 备驱动程序指定数据相关的功能指定的设备指定数据的安装过程,该功能指定的设备指 定数据是使操作系统能够识别设备功能的数据,该设备驱动程序指定数据是用于指定设 备驱动程序作为控制设备执行功能的程序的数据。附加安装部分实现在和设备指定数据 相关的附加注册区域中记录功能指定的设备指定数据和设备驱动程序指定数据两者中的 至少一种数据的附加安装过程,该设备指定数据是指示该设备的数据。卸载请求接收部 分实现一个过程以接收来自将设备作为目标的使用者的卸载请求。卸载部分在当通过卸 载请求接收部分接收到来自使用者的设备卸载请求时,通过使用存储在和指出作为卸载 目标的设备的设备指定数据相关的附加注册区域内的功能指定的设备指定数据和设备驱 动程序指定数据中的至少一种数据,实现从设备注册区域去除和作为卸载目标的设备的 功能指定的设备指定数据相关的设备驱动驱动程序指定数据的过程。根据另一方面,本 发明提供了一种卸载方法,包括:在由操作系统管理的设备注册区域,执行用于记录和 设备驱动程序指定数据相关的功能指定的设备指定数据的安装过程,所述功能指定的设 备指定数据是使操作系统能识别一个设备的功能的数据,所述设备驱动程序指定数据是 用于指定一个设备驱动程序作为控制该设备来执行这个功能的程序的数据;在和指示设 备的设备指定数据相关的附加注册区域中,执行记录功能指定的设备指定数据和设备驱 动程序指定数据两者中的至少一种数据的附加安装过程;执行接收来自将该设备作为目 标的使用者的卸载请求的过程;和当接收到来自使用者的该设备的卸载请求时,通过使 用存储在和指示作为卸载目标的设备的设备指定数据相关的附加注册区域内的功能指定 的设备指定数据和设备驱动程序指定数据两者中的至少一种数据,执行从设备注册区域 去除和作为卸载目标的设备的功能指定的设备指定数据相关的设备驱动程序指定数据的 过程。根据另一个方面,本发明提供了一种卸载的程序,包括以下几个程序:在由操作 系统管理的设备注册区域,执行用于记录功能指定设备指定数据的安装过程,功能指定 设备指定数据是使操作系统能够识别一个设备的功能的数据,和设备驱动程序指定数据 相关联,设备驱动程序指定数据是用于指定一个设备驱动程序作为控制该设备来执行这 个功能的程序的数据;在和指示设备的设备指定数据相关的附加的注册区域内,执行用 于记录功能指定的设备指定数据和设备驱动程序指定数据两者中的至少一种数据的附加 安装过程;执行接收来自将该设备作为目标的使用者的卸载请求的过程;和当接收到来 自使用者的该设备的卸载请求时,通过使用存储在和指示作为卸载目标的设备的设备指 定数据相关的附加注册区域内的功能指定的设备指定数据和设备驱动程序指定数据两者 中的至少一种数据,执行从设备注册区域去除和作为卸载目标的设备的功能指定的设备 指定数据相关的设备驱动程序指定数据的过程。这样的一个计算机程序可以被储存在能 被计算机读取的存储介质中,比如软盘,光盘(CD-ROM,DVD-ROM或类似物),硬 盘,ROM,或RAM,并且当需要的时候被装入计算机上并被执行,或者通过网络被装入计 算机上并被执行。 根据另一个方面,本发明提供了一种卸载系统,包括:安装装置,卸载请求接收装 置,和卸载装置。安装装置用于在由操作系统管理的设备注册区域中,注册设备的一组 设备驱动程序的数据,该组设备驱动程序包括多个将被操作系统用来控制设备来执行多 项功能的设备驱动程序。卸载请求接收装置用来接收使用者的指示以卸载该设备的该组 设备驱动程序。卸载装置用于根据接收的指示,从设备注册区域中取消对该组设备驱动 程序的注册。 安装装置可以在附加存储区域中记录该组设备驱动程序和设备之间的关系,而且卸 载装置可以通过参考该组设备驱动程序和该设备之间的关系,取消该组设备驱动程序中 的多个设备驱动程序。 根据另一个方面,本发明提供一种卸载系统,包括:存储器和控制器。该控制器在 存储器中准备的并由操作系统管理的设备注册区域中,注册一个设备的一组设备驱动程 序的数据,该组设备驱动程序包括多个将被操作系统用来控制设备执行多项功能的设备 驱动程序,该控制器并接收使用者的指示以卸载该设备的该组设备驱动程序,并且根据 接收到的指令从设备注册区域中取消对该组设备驱动程序的注册。 控制器可以在存储器中准备的附加存储区域中记录该组设备驱动程序和设备之间的 关系,控制器可以通过参考该组设备驱动程序和该设备之间的关系,取消该组设备驱动 程序中的多个设备驱动程序。根据另一个方面,本发明提供了一种存储计算机可读的卸 载程序的存储介质,其中的卸载程序包括以下程序:在由操作系统管理的设备注册区域, 执行用于记录功能指定设备指定数据的安装过程,功能指定设备指定数据是使操作系统 能够识别一个设备的功能的数据,和设备驱动程序指定数据相关联,设备驱动程序指定 数据是用于指定一个设备驱动程序作为控制该设备来执行这个功能的程序的数据;在和 指示设备的设备指定数据相关的附加的注册区域内,执行用于记录功能指定的设备指定 数据和设备驱动程序指定数据两者中的至少一种数据的附加安装过程;执行接收来自将 该设备作为目标的使用者的卸载请求的过程;和当接收到来自使用者的该设备的卸载请 求时,通过使用存储在和指示作为卸载目标的设备的设备指定数据相关的附加注册区域 内的功能指定的设备指定数据和设备驱动程序指定数据两者中的至少一种数据,执行从 设备注册区域去除和作为卸载目标的设备的功能指定的设备指定数据相关的设备驱动程 序指定数据的过程。 附图说明 通过下文结合附图的对优选实施例的描述,本发明的上述的和其他目的,特征和优 点将变得更加的清晰。其中: 图1(a)和1(b)是显示可想象的安装和卸载过程的第一例子的示意图,其中,图1(a) 显示当安装用于一台多功能设备的设备驱动程序时,可想象的安装系统如何在注册表中 输入设置数据,图1(b)显示了根据图1(a)的设置数据显示的文件夹窗口; 图2(a)和2(b)是显示想象的安装和卸载过程的第二例子的示意图,其中,图2(a)显 示当安装用于两台同类型的多功能设备的设备驱动程序时,可想象的安装系统如何在注 册表中输入设置数据,图2(b)显示了根据图2(a)的设置数据显示的文件夹窗口; 图3是显示根据本发明的一个实施例的卸载系统的结构的示意图; 图4是显示安装过程步骤的流程图; 图5是显示图4的S100中描述的注册表建立过程的步骤的流程图; 图6是显示图4的S400中描述的本地注册表建立过程的步骤的流程图; 图7是显示当端口是本地的时注册表示例的示意图; 图8是显示用于选择安装目标的IP地址的示例对话框的示意图; 图9是显示作为示例的驱动程序数据文件的inf文件的示意图; 图10(a)是显示在系统注册表中作为扫描仪驱动程序的设置数据的示例条目的示意 图; 图10(b)是显示在系统注册表中作为打印机驱动的设置数据的示例条目的示意图; 图11是显示当端口是网络时示例注册表的示意图; 图12是显示当安装过程已经完成时,存储在硬盘驱动器上的数据的示意图; 图13是显示卸载过程的第一部分的步骤的流程图; 图14是显示图13的卸载过程的第二部分的步骤的流程图; 图15是显示图14的卸载过程的剩余部分的步骤的流程图; 图16(a)是显示图13中S600中描述的第一卸载列表建立过程的步骤的流程图; 图16(b)是显示图16(a)的过程中建立的注册表1(Regustry1),注册表2(Regristry2), 注册表3(Registry3)的示例; 图17(a)是显示第一卸载列表的例子的示意图,该列表是根据图11中的注册表示例, 通过图16(a)的过程获得的; 图17(b)是显示第二和第三卸载列表的例子的示意图,该列表是通过图13的过程, 当使用者选择"Local"(本地)作为卸载类型,在有"Local"作为端口名的第一卸载列表中 唯一的条目是"2"时得到的; 图17(c)是显示第二和第三卸载列表的例子的示意图,该列表是通过图13的过程, 当使用者选择"All"作为卸载类型时得到的; 图18是显示卸载类型选择对话框的例子的示意图; 图19是显示列表对话框的例子的示意图; 图20是显示图14中S930描述的描述显示过程的步骤的流程图;和 图21是显示Brlst.ini.文件的例子的示意图。 具体实施方式 下面将结合附图描述一种根据本发明的优选实施例的卸载系统,卸载方法和计算机 程序。 图3是显示采用多功能设备的系统100的构造的框图。系统100包括作为卸载系统 的实施例的个人计算机1和多功能设备2(2a,2b和2c)。 个人计算机1是一台普通的个人计算机,包括CPU11,RAM12,CD-ROM驱动器 13,硬盘驱动器14,并口15,和网络接口16。个人计算机1和显示设备17相连。个人 计算机1可以运行存储在硬盘驱动器14中的操作系统(MS-Windows(注册商标)),并 在显示设备17上显示各种数据。个人计算机1也和鼠标和键盘18相连,使得个人计算 机1的使用者可以选择和输入数据。 系统100也可以配置安装在CD-ROM驱动器13上的CD-ROM10。CD-ROM10存 储各种包括安装程序,卸载程序和设备驱动程序的各种程序。安装程序和卸载程序用于 控制计算机起到卸载系统的功能。当CD-ROM10被插入CD-ROM驱动器13时,CPU11 可以从CD-ROM10中把程序和数据读取到RAM12中,并执行采用存储在硬盘驱动器14 上的操作系统的过程。 打印机电缆4的一端和个人计算机1的并口15相连,另一端和多功能设备2a相连, 使得多功能设备2a和计算机1能进行电通信。个人计算机1的网络接口16连接到网络3。 多功能设备2b和2c也连到网络3。每个多功能设备2(2a,2b,2c)有打印机功能,图像 扫描功能和传真通讯功能中的至少一个功能。 在接收到来自CD-ROM驱动器13的信号,指示CD-ROM已经被插入时,CPU11 就控制CD-ROM驱动器13读取并执行存储在CD-ROM10上的安装程序。 下面,将结合图4到图12描述当CPU11执行安装程序时在个人计算机1上实施的 安装过程。 图4是显示安装过程步骤的流程图。图5是显示图4的S100中描述的注册表建立 过程步骤的流程图。图6是显示图4的S400中描述的本地注册表建立过程步骤的流程图。 注册表是存储由操作系统管理,并存储在硬盘驱动器14上的设置的文件。 当一个使用者新连接一个比如说型号名为"BrMF1"的多功能设备2(2a,2b,2c,2d或类 似)到个人计算机1,并且希望给个人计算机1为多功能设备2安装必要的驱动程序时,使 用者把用于设备2的CD-ROM10插入到CD-ROM驱动器13中,并输入他/她的开始安装 过程的指令。结果,个人计算机1就通过执行安装程序开始执行安装过程。当安装过程 开始,如图4所示,首先在S100执行注册表建立过程。 该过程如图5所示。 如图5所示,首先,在S110,建立一个变量RegNum来指示注册表号,并且,在S120 中,RegNum被初始化为1(RegNum=1)。 在S130,CPU11从储存在CD-ROM10中的ini文件获得型号名,并给这个型号名 设立一个变量szModel。在这个例子中,型号名"BrMF1"被设置给变量szModel。 在S140,CPU11然后列出所有的在Registry1+szModel下存在于HDD14中的注册 表。注册表1(Regirstry1)被定义成结合在安装程序中的注册表中的基础路径。 现在,假定三个型号为"BrMF1"的多功能设备2已经被连接到个人计算机1,如图7 所示,并且注册表1(Registry1)被定义为"\HKEY_LOCAL_MACHINE\Software\Br\Br MFL\Z2\",并且,SzModel是"BrMF1"。CPU11获得在 "\HKEY_LOCAL_MACHINE\Software\Br\Br MFL\Z2\BrMF1"下的注册表的列表。CPU11 在这个型号名下把RegList设置给注册表列表。 在S150,CPU11提取RegList中的第一个数据条目。比如说,如果注册表如图7所 示,CPU11提取"1"作为"\HKEY_LOCAL_MACHINE\Software\Br\Br MFL\Z2\BrMF1"下的 第一条目。注意到当有这个型号"BrMF1"的驱动程序没有已经被安装在个人计算机1上 时,键"\HKEY_LOCAL_MACHINE\Software\Br\Br MFL\Z2\BrMF1"本身不存在于HDD14 的注册表中,因此CPU11将不能在RegList中提取第一数据条目。 在S160,CPU11确定在RegList上的第一数据条目在S150中是否已经被获取。如 果第一数据条目已经被成功获取(S160:是),然后CPU11就进行到S170。在另一方面, 如果CPU11没获取第一条目(S160:否),然后CPU11进行到S220。 在S170,CPU11将RegNum设置成获得的注册表数据。如上所述,在图7的例子 中,RegNum现在被设为"1"。 在S180,CPU11试图获得RegList中的下一个数据条目。在S190中,CPU11确定 数据是否被成功地获取。如果数据已经被获取(S190:是),那么CPU11进行到S200,否 则,(S190:否),CPU11进行到S220。 在S220中,CPU11确定在S180中获取得注册表数据是否比RegNum大。如果注 册表数据比RegNum大(S200:是),那么CPU11进行到S210。 在S210中,CPU11将RegNum设置成获取的注册表数据的值,然后返回S180。但 是,如果获取的注册表数据没有比RegNum大(S200:否),那么CPU11返回S180,不改 变RegNum的值。换句话说,CPU11在获取的注册表数据中搜索最大的值。在如上所述 的图7的例子中,最大的值是"3"。 在S220中,CPU11确定RegNum键是否存在于注册表中。如果RegNum键存在(S220: YES),那么在S230中,CPU11使RegNum增加1。另一方面,如果RegNum键不存在 (S220:NO),那么CPU11进行到S240。结果,在如上所述的图7的例子中,RegNum被 设置为3+1=4。注意到当没有这个型号"BrMF1'的驱动程序被安装在个人计算机1上时(在 S160中为否和在S220中为否),RegNum被设为1。 在S240中,CPU11将目标数据存储注册表(安装程序注册表)设置为 Registry1\szModel\RegNum。在图7的例子中,数据存储注册表被设置为 "\HKEY_LOCAL_MACHINE\Software\Br\Br MFL\Z2\BrMF1\4."。然后,CPU11进行到图 4中的S310。 注意到如果没有该型号"BrMF1"的多功能设备2已经连接到个人计算机1上,数据 存储器注册表被被设置为"\HKEY_LOCAL_MACHINE\Software\Br\Br MFL\Z2\BrMF1\1."。如果只有两个"BrMF1"型号的多功能设备已经被连接到个人计算机1, 数据存储注册表被设置为"\HKEY_LOCAL_MACHINE\Software\Br\Br MFL\Z2\BrMF1\3."。 在S310,CPU11通过显示一个对话框,提示使用者输入选择的方式来确定被安装 的设备(多功能设备2)是本地连接还是网络连接。 如果设备是本地连接(S310:Local(本地)),那么CPU11进行到S400,并执行如 图4所述的本地注册表建立过程。另一方面,如果设备是网络连接(S310:Network(网络)), 那么CPU11进行到S320。 图6的本地注册表建立过程是,如果本地注册表已经存在于HDD14中,给本地注 册表重新设置为目标数据存储注册表。在根据优选实施例的系统100中,这个过程保证 只有连接到多功能设备的一个连接被个人计算机1识别为本地连接。 如图6所示,首先,在S410,CPU11获取了直接位于注册表1(Registry1)(在这个例 子中,就是"\HKEY_LOCAL_MACHINE\Software\Br\Br MFL\Z2")下的子键,并将 RegListLocal1设置为这些子键。 在S420,CPU11试图提取在RegListLocal1下的第一数据条目作为获取得的注册表 数据,并且在S430中确定数据条目是否被获取。如果数据条目已经被获取(S430:是), 那么CPU11进行到S440。否则,(S430:否),CPU11进行到图4的S330。 在S440,CPU11将RegSub1设置为获取的注册表数据。 在S450,CPU11获取在Registry1\RegSub1下的注册表的列表,并将RegListLocal2 设置为这个列表。 在S460,CPU11试图获取RegListLocal2中的第一数据条目,并在S470确定条目 是否已经被获取。如果条目已经被获取(S470:是),那么在S485,CPU11将RegSub2设 置为在RegListLocal2中获取的注册表数据,并进行到S490。但是,如果数据条目没有被 获取(S470:否),那么CPU11进行到S480。 在S480,CPU11试图获取在RegListLocal1中的下一个数据条目,并返回S430。 在S490,CPU11在获取在RegSub2下的PortName的值,将szPort设置为这个值。 在S500,CPU11确定szPort是否是"Local"(本地)。如果szPort是"Local"(S500:YES), 那么CPU11进行到S520,但是,如果szPort不是"Local"(S500:否),那么CPU11进行到 S510。在S510,CPU11试图获得RegListLocal2中的下一个数据条目,然后返回S470。 在S520,CPU11将目标数据存储注册表设置为Registry1\RegSub1\RegSub2,并且 进行到图4的S330。以这种方法,如果"Local(本地)"注册表已经存在了,那么目标数 据存储注册表被改变成那个注册表。但是,如果"Local(本地)"注册表不存在(S430:否), 那么数据存储注册表还保留在S100中建立的注册表。 现在,假定该型号"BrMF1"的三个多功能设备2已经被连接到个人计算机1,并且 因此用于新多功能设备2的目标数据存储注册表在S240被设置为 "\HKEY_LOCAL_MACHINE\Software\Br\Br MFL\Z2\BrMF1\4"。如果三个多功能设备2 中由注册表"\HKEY_LOCAL_MACHINE\Software\Br\Br MFL\Z2\BrMF1\2"指出的一个设 备连接到本地端口,目标数据存储注册表在S520被改变成注册表 "HKEY_LOCAL_MACHINE\Sortware\Br\Br MFL\Z2\BrMF1\2"。 再参考图4,如果设备是网络连接(S310:Network(网络)),在S320,CPU11设置IP 地址。那就是,CPU11通过网络3获取连接到网络接口16的设备的数据,在对话框中显 示来自该数据中的IP地址和型号名称,如图8所示,并且提示使用者进行选择。当使用 者进行选择时,CPU将作为安装目标的设备2的IP地址设置为选择的IP地址。 在S330,CPU将图9所示的inf文件(驱动程序信息文件)传递给操作系统,将驱 动程序文件(打印机驱动程序,扫描仪驱动程序和传真驱动程序)复制给硬盘驱动器14 上用于操作系统的各自的驱动程序存储区域,并给操作系统发出请求注册这些驱动程序。 更具体地说,CPU11指示操作系统在系统注册表给每个驱动程序注册设置数据。换 句话说,CPU11指示操作系统在系统注册表键下存储设置数据。 另外,CPU11从CD-ROM复制卸载程序和图标数据到硬盘驱动器14上。 如上面S330中所述,操作系统以这种方式在系统注册表键下存储设置数据以后, 程序进行到S335。 在S335,CPU11把端口名,或"USB","LPT"或类似的名字作为注解记录在用于打 印机和传真的系统注册表的打印机注册键(用于打印机的设备驱动程序指定数据)下。 用这种方法,以包括在端口名(PortName)中的形式执行了对在S320中选择的IP地址 的安装。然后,程序进行到S340。 在S340,CPU11将卸载需要的数据记录在目标数据存储注册表(安装注册表)中。 这些需要的数据包括用于正在被安装的多功能设备2的PC-FAX名(FaxName),端口名 (PortName),打印机名(PrinterNameHBP),扫描仪驱动程序注册表键名 (TwainClassData),TWAIN文件夹名(TwainDirName),和TWAIN DS名(TwainDSName)。 更具体地说,CPU11在S340从注册表键读取设置数据,将设置数据写入目标数据 存储注册表。在S340识别这些操作系统在S330刚将设置数据储存到其中的那些注册表 键的一个方法是,在S330请求将一个指定值存储在储存设置数据的注册表键中,并在S340 检测保存有这个指定值的注册表键。 打印机名(PrinterNameHBP)起到打印机的功能指定的设备指定数据的作用。TWAIN DS名(TwainDSName)起到扫描仪的功能指定的设备指定数据的作用。扫描仪驱动程序 注册表键名(TwainClassData)起到扫描仪的设备驱动程序指定数据的作用。端口名 (PortName)起到识别用于执行控制安装的设备的通讯功能的输入/输出接口的输入/输出 接口指定数据的作用。 注意到输入/输出接口的代表例子包括:网络端口和地址的结合;以及USB端口。 端口名(输入/输出接口指定数据)的代表性例子因此包括:STI驱动程序名+地址;和端 口名。 当用于多功能设备2的安装过程完成后,注册表,用于驱动程序(打印机驱动程序, 扫描仪驱动程序和传真驱动程序)的文件;卸载程序;和图标数据被存储在硬盘驱动器14 上,如图12所示。 图10(a)显示存储在扫描仪驱动程序的数据栏中的设置数据的例子,该驱动程序注 册以用于网络扫描仪的扫描仪注册表键名"0047"("TwainClassData")在系统注册表键中 注册。扫描仪注册表键名起到指定设备驱动程序(在这个例子中,扫描仪驱动程序)作 为用于控制安装的设备执行相应功能(在这个例子中,扫描功能)的程序的设备驱动程 序指定数据的作用。设置数据包括扫描仪名"Br MF1 LAN",该名称起到使操作系统能识 别被安装的设备的功能(在这个例子中,扫描仪功能)的功能指定设备指定数据的作用。 如图10(b)所示,对于网络打印机,在另一个系统注册表键中,用打印机注册表 键名"Br MF1 Printer"为打印机驱动程序注册设置数据。该打印机注册表键名作为设备驱 动程序指定数据,用于指定作为控制安装好的设备2执行相应功能(在本例中是打印机 功能)的程序的设备驱动程序(在本例中是打印机驱动程序)。所述设置数据包括:打印 机名,例如"Br MF1 Printer",作为功能指定设备指定数据,用来使操作系统识别安装好 的设备的功能(例如打印功能);和端口名称,例如"BLP_11.22.33.44_1",作为输入/输出 接口指定数据,用来指定用于在个人计算机1与安装好的设备2间进行通信的输入/输出 接口。需要注意,端口名"BLP_11.22.33.44_1"被记录在打印机注册表键名"Br MF1 Printer" 下作为注释。需要注意在安装过程S330中,如图10(a)所示,扫描仪名"Br MF1 LAN" (功能指定设备指定数据)被相关于用于扫描仪的系统注册表键"0047"(设备驱动程序 指定数据)而存储(用于扫描仪的系统注册表)。如图10(b)所示,打印机名"Br MF1 Printer" (功能指定设备指定数据)被相关于用于打印机的系统注册表键"Br MF1 Printer"(设备 驱动程序指定数据)而存储(用于打印机的系统注册表)。在S335中,端口名 "BLP_11.22.33.44_1"(输入/输出接口指定数据)被相关于对于打印机的系统注册表键"Br MF1 Printer"(设备驱动程序指定数据)而记录作为打印机注释(用于打印机的系统注册 表)。 需要注意,完成在S330中的注册如图10(a)所示的系统注册表后,操作系统在S340 中向图4的安装程序返回扫描仪驱动程序注册表键名"TwainClassData"(图10(a)中0047), 因此,图4的安装程序在S340中从该注册表键名下读取设置数据,并将设置数据存入目 标数据存储注册表 如图7所示的数据栏是在S340中记录到用于一个多功能设备的一个目标数据存储 注册表(安装注册表)中的数据的例子,所述多功能设备连接在本地端口并通过键名 "\HKEY_LOCAL_MACHINE\Software\Br\BR MFL\Z2\BrMF1\2"加以指定。 如图11所示的数据栏是在S340中记录到用于另一个多功能设备的另一个目标数据 存储注册表(安装注册表)的数据的例子,所述多功能设备连接在网络端口上并通过键 名"\HKEY_LOCAL_MACHINE\Software\Br\BR MFL\Z2\BrMF1\3"加以指定。 举例而言,在S340的安装过程中,如图7所示,端口名"Local"(输入/输出接口指 定数据)和打印机名"BrMF1 Printer|Br MF1 USBPrinter"(功能指定设备指定数据),以与 键名"\HKEY_LOCAL_MACHINE\Software\Br\BR MFL\Z2\BrMF1\2"相关联的方式,被 存入对于连接到个人计算机1的本地端口的多功能设备2的安装注册表。 根据另一个例子,在S340的安装过程中,如图11所示,端口名"BLP_11.22.33.44_1" (输入/输出接口指定数据)、打印机名"Br MF1 Printer"(功能指定设备指定数据)、扫描 仪注册表键"0047"(用于扫描仪的扫描仪驱动程序指定数据)、以及扫描仪名"Br MF1 LAN" (用于打印机的功能指定设备指定数据),以与键名"\HKEY_LOCAL_MACHINE\Software \Br\BR MFL\Z2\BrMF1\3"相关联的方式,被存入对于连接到个人计算机1的网络端口 的多功能设备2的安装注册表。通过使用图12所示的注册表(在本例中是图10(a)和 图10(b)的系统注册表以及图7和图11的安装注册表)、驱动程序文件以及图标文件, 操作系统能够依照从应用程序等接收到的命令经由设备驱动程序控制所述多功能设备2。 相应地,通过经由对应的端口根据扫描仪驱动程序和扫描仪接口或者根据打印机驱动程 序和打印机接口去控制多功能设备2,使用者能够在个人计算机1上使用各个相同型号的 多功能设备2。 举例而言,操作系统按照下述方式执行某些设备2的打印机功能。对于所述设备2 的打印机功能,操作系统在图10(a)的系统注册表中查找打印机名"Br MF1 Printer"(用 于扫描仪的功能指定设备指定数据)。操作系统参考打印机注册表键"Br MF1 Printer"(打 印机驱动程序指定数据)以及端口名"BLP_11.22.33.44_1"(输入/输出接口指定数据),该 打印机注册表键"Br MF1 Printer"(打印机驱动程序指定数据)与图10(b)的系统注册表 中的打印机名"Br MF1 Printer"相关联,而端口名称"BLP_11.22.33.44_1"(输入/输出接口 指定数据则与图10(b)的系统注册表以及图11的安装注册表中的打印机名"Br MF1 Printer" 相关联。操作系统通过由打印机注册表键"Br MF1 Printer"指定的设备驱动程序经过由端 口名"BLP_11.22.33.44_1"指定的输入/输出接口控制所述设备2。操作系统按照下述方式执 行同一设备2的扫描仪功能。对于所述设备2的扫描仪功能,操作系统在图10(a)的系 统注册表中查找扫描仪名"Br MF1 LAN"(用于扫描仪的功能指定设备指定数据)。操作系 统参考扫描仪注册表键"0047"(扫描仪驱动程序指定数据)以及端口名"BLP_11.22.33.44_1" (输入/输出接口指定数据),该扫描仪注册表键与图10(b)的系统注册表中的扫描仪名"Br MF1 LAN"相关联,而端口名称则与图11的安装注册表中的扫描仪名"Br MF1 LAN"相关 联。操作系统通过由扫描仪注册表键"0047"指定的设备驱动程序经过由端口名 "BLP_11.22.33.44_1"指定的输入/输出接口控制所述设备2。 需要注意如图9所示,inf文件中进一步存有安装过程的流程数据,并作为安装流 程文件。Inf文件中存有用来指明在S330中是否需要安装存在CD-ROM 10中的多个设备 驱动程序中的每一个程序的数据,从而控制将安装的设备。CPU 11通过参考inf文件中 的流程执行安装过程。 或者,可以将安装过程的步骤合并到安装程序中。通过执行安装程序,CPU 11提 示使用者输入他/她的指令,是否需要安装存在CD-ROM 10中的多个设备驱动程序中的 每一个程序。 如果使用者不再需要使用某个多功能设备2(2a、2b、或2c),那么使用者就可以 执行存储在硬盘驱动器14上的卸载程序。当CPU 10执行该卸载程序时,在个人计算机1 上执行一个卸载过程。下面参考图13至图16(b)描述卸载过程。 图13-15是显示卸载过程中的步骤的流程图。图16(a)是显示在图13的S600中 叙述的建立第一卸载列表过程的步骤的流程图。图16(b)显示图16(a)的过程中建立 的Registry1(注册表1)、Registry2(注册表2)、和Registry3(注册表3)的例子。 如图13所示,首先在S600中,CPU 11执行建立第一卸载列表(卸载列表1)的过 程。下面参考图16(a)和16(b)详细描述该过程。 如图16(a)所示,首先在S610中,CPU 11获取一个在Registry1下,也就是在 图11的例子中的目标数据存储注册表中的"\HKEY_LOCAL_MACHINE\Soffware\Br\BR MFL\Z2\"下的注册表列表,并将RegList1设置为该列表。在图11所示的实例中,注册 表列表"MF1和MF2"被设置为RegList1。 在S620中,CPU 11试图在RegList1中获取第一字符数组,并将SubKey1设置为获 得的字符数组。 在S630中,CPU 11判断是否已经获取了字符数组。如果已经获取了字符数组(S630: 是),那么CPU 11前进到S640。然而,如果尚未获取字符数组(S630:否),则CPU 11 进入图13中的S810。 在S640中,CPU 11将注册表2(Registry2)设置为Registry1+SubKey1。 在S650中,CPU 11获取一个在注册表2(Registry2)下的注册表列表,并将RegList2 设置为该列表。 在S660中,CPU 11试图在RegList2中获取顶部的子键,并将SubKey2设置为获得 的字符数组。 在S670中,CPU 11确定在S660中是否已经获取了字符数组。 如果已经获取了字符数组(S670:是),那么CPU 11前进到S690。然而,如果尚 未获取字符数组(S670:否),则CPU 11进入S680。 在S680中,CPU 11试图在RegList1中获取下一个字符数组。CPU 11将SubKey1 设置为获得的字符数组,并返回S630。 在S690中,CPU 11将注册表3(Registry3)设置Registry2+SubKey2。在S700中, CPU 11将注册表3(Registry3)添加到第一卸载列表(卸载列表1)中。在S710中,CPU 11 试图在RegList2中获取下一个字符数组,将SubKey2设置为获得的字符数组,并返回 S670。 使用如图11所示的注册表例子,图17(a)所示的第一卸载列表(卸载列表1)通 过图16(a)所示的过程获得。 回到图13,接着,在S810中,CPU 11显示一个如图18所示的对话框,用来选择 想要的卸载类型。该对话框允许使用者选择将要卸载的设备(多功能设备2)的连接类型。 例如,当卸载连接在并行端口15上的多功能设备2a时,使用者选择"Local Interface(本 地接口)"。当卸载连接到网络端口16的网络3上的多功能设备2b或2c时,使用者选择 "Network Interface(网络接口)"。要卸载所有这些设备,使用者选择"All(所有)"。选 定连接类型后,使用者点击Next(下一步)按钮,将选定的类型设为卸载类型。 在S820中,CPU 11确定是否选择了Next按钮,如果选择了Next按钮就前进到S830。 在S830中,CPU 11将选定的卸载类型存入RAM 12中。 在S840中,CPU 11试图在第一卸载列表中获取第一数据条目,并在S850中确定 是否已经获取了数据条目。如果已经获取了数据(S850:是),那么CPU 11前进到S860。 然而,如果尚未获取数据(S850:否),则CPU 11进入图14中的S920。 在S860中,CPU 11从SubKey2中获取端口名。在S870中,CPU 11基于S830中 存储在RAM 12中的卸载类型确定卸载类型(连接类型)。当卸载类型为"Local"时,CPU 11 进入S890,为"Network"时进入S880,为"All"时进入S900。 在S880中,CPU 11确定在S860中获取的端口名是否不是"Local"。如果端口名称 不是"Local"(S880:否),CPU 11进入S900,但如果是"Local"(S880:是),CPU 11进 入S895。在S890中,CPU 11确定在S860中获取的端口名是否是"Local"。如果端口名是 "Local"(S890:是),CPU 11进入S900,但如果不是"Local"(S890:否),CPU 11进入 S895。 在S895中,CPU 11试图在第一卸载列表中获取下一个数据条目并返回S850。 在S900中,CPU 11向第二卸载列表(卸载列表2)输入数据。在S910中,CPU 11 修改第二卸载列表中的SubKey2的部分,使其包括端口名,将该SubKey2输入第三卸载 列表和列表对话框,并前进到S895。 该过程的结果是,只有在图18所示的对话框中选定的卸载类型的注册表键才会被 存入第二卸载列表。 在第三卸载列表中,第二卸载列表的注册表键中SubKey2的数字部分被端口名所替 代。 在图11所示的注册表的情况下,举例而言,上述图17(a)中所述的值被存入第一 卸载列表。若使用者选定"Local"作为卸载类型,并且在第一卸载列表中唯一的有"Local" 作为端口名称的条目是"2",该条目"2"是"\HKEY_LOCAL_MACHINE\Software\Br\BR MFL\Z2\MF1"中的SubKey2,则建立如图17(b)所示的第二卸载列表和第三卸载列表。 进一步,当选定"All"作为卸载类型时,建立如图17(c)所示的第二卸载列表和第 三卸载列表。各个列表中的元素被配置成能通过一个索引加以参考。 如图14所示,在S920中,CPU 11基于第三卸载列表建立并显示一个列表对话框, 如图19所示。图19的列表对话框显示了当在图18的对话框中选定"All"时,因此如图17 (c)所示在S910中建立第三卸载列表的一个例子。当选定"Local Interface"或"Network Interface"时,基于第三卸载列表,只有相应的设备才被显示。 在该列表对话框中,图11的注册表树结构中BrMFL下的树结构部分的各个节点, 和与各个相应节点相邻的核准框(checkbox)一起被显示。当对应树结构的叶片的节点被 点击时,核准框在核准状态和不核准状态间切换。当点击树结构的原始节点时,该节点 的核准状态也在通和断间切换,而该原始节点下的所有核准框也切换成通或断。核准了 的节点被看作被选定了。 对于相应于树结构中选定的节点(图19中切换的节点)的注册表值(图11中Data (数据)栏的内容),在Description(描述)区域中以这样的顺序显示PortName(输入/ 输出接口指定数据)、PrinterNameHBP(用于打印机的功能指定设备指定数据)、 TwainDSName(用于扫描仪的功能指定设备指定数据)、和FaxName(用于传真机的功能 指定设备指定数据)的值。相应的,使用者能方便地指定需要卸载的目标。 更具体地,在S930中CPU 11中执行一个描述显示过程,细节显示在图20中。 如图20所示,在S932中,CPU 11确定图19的列表对话框中的一个元素是否被点 击。 如果元素被点击(S932:是),则CPU 11前进到S933。反之(S932:否),CPU 11 前进到S936。 在S933中,CPU 11获取元素的索引值。 在S934中,CPU 11从例如图11所示的目标数据存储注册表(安装注册表)中获 取与索引值对应的描述数据。 在S935中,CPU 11将列表对话框中的描述显示转换成S934中获取的描述数据。 在S936中,CPU 11确定在列表对话框中是否选择了Next(下一个)按钮。 如果选择了Next按钮(S936:是),则CPU 11结束该过程并进入图14中的S940。 然而,如果没有选择Next按钮(S936:否),CPU 11返回S932。 回到图14,接着,在S940中,CPU 11确认图19的列表对话框中选择的存在,并 在S950中,从第二卸载列表删除列表对话框中未选择的项目。 在S955中,CPU 11试图在第二卸载列表中获取第一数据条目。 在S960中,CPU 11确定是否已经获取了数据条目。如果已经获取了数据条目(S960: 是),CPU 11进入S970。反之(S960:否),CPU 11进入图15中的S1210。 在S970中,CPU 11从由获取的注册表键名指出的注册表中获取TWAIN DS Name。 在S980中,基于该TWAIN DS Name,CPU 11使用操作系统的API(应用程序界 面)删除扫描仪驱动程序。 进一步,在S990中,CPU 11从由获取的注册表键名指出的注册表中获取TWAIN 目录名,并在S1000中删除该TWAIN目录。 进一步,在S1110中,CPU 11从由获取的注册表键名指出的注册表中获取扫描仪 驱动程序注册表键,并在S1120中删除该扫描仪驱动程序注册表,举例而言,CPU 11删 除图10(a)中"0047"下的树结构。 在S1130中,CPU 11从由获取的注册表键名指出的注册表中获取端口名。 举例而言,如果获取的注册表键名指出如图11所示的注册表,CPU 11在S970-S1130 中从安装注册表中获取TWAIN DS Name"BR MF LAN"、TWAIN目录名"C:\WINDOWS\ TWAIN_32\BRMFCSCN1"、扫描仪注册表键名"0047"、和端口名"BLP_11.22.33.44_1"。 接着,在图15的S1150中,CPU 11确定端口名是否为"Local"。 如果端口名为"Local"(S1150:是),CPU 11进入S1160,并从打印机文件夹中删除 在S335中用打印机注释"USB"记录的打印机键。 在S1170中,CPU 11从打印机文件夹中删除在S335中用打印机注释"LPT"记录的 打印机键。 然而,如果端口名并非"Local"(S1150:否),则在S1180中,CPU 11从打印机文 件夹中删除在S335中用与在S1130获取的端口名相同的打印机注释记录的打印机键。 通过这种方式,在S1160、S1170、或S1180中,CPU 11删除打印机驱动程序注册 表。例如,CPU 11在S1180中删除图10(b)中"Br MF1 Printer"下的树结构,因为打印 机键"Br MF1 Printer"用端口名"BLP_11.22.33.44_1"的打印机注释记录。 在S1190中,CPU 11列举对Brlst.ini文件中删除的打印机驱动程序名的描述。图21 显示了描述的一个示例。 在S1200中,CPU 11从第二卸载列表中删除该涉及的注册表并返回S955。 如果在S960中没有获取数据条目(S960:否),在S1210中,CPU 11删除Brlst.ini 文件中对打印机的描述。 通过根据上述优选实施例的卸载系统,从图10(a)和10(b)所示的系统注册表 分别提供了如图7和11所示的安装注册表(目标数据存储注册表)。在对于每个多功能设 备2的注册表键指明的安装注册表中,识别为多功能设备2而安装的所有设备驱动程序 (扫描仪驱动程序、打印机驱动程序、和传真机驱动程序)的数据被彼此相关联地注册。 相应地,卸载系统能容易地一次性识别出为该涉及的多功能设备2所安装的所有设备驱 动程序,并能从操作系统中容易地取消所有安装的设备驱动程序留下的记录。 进一步,通过指定某个或多个指定设备2,使用者可以一次卸载掉一个或多个指定 设备2的多个设备驱动程序。相应地,本实施例的卸载系统对使用者的操作变得方便而 不麻烦。 因此,即便为控制某些设备2执行打印机功能和扫描仪功能时,需要打印机驱动程 序和扫描仪驱动程序,使用者仍能通过简单地指出该指定设备2,同时卸载该设备的打印 机驱动程序和扫描仪驱动程序。相应地,本实施例的卸载系统对使用者而言十分的方便。 端口名(输入/输出接口指定数据)被记录在如图7和11所示的安装注册表中。相 应地,基于安装注册表准备图19的列表对话框,用来显示各个设备连接到的端口名,从 而使使用者能识别所有安装的设备。然而需要注意,如果设备识别数据能够使使用者识 别出相应的设备,那些不同于端口名的设备识别数据也可能存储在安装注册表取代端口 名。 在S930,存储在与使用者选择的设备相关联的安装注册表中的打印机名和扫描仪 名(功能指定设备指定数据)显示成如图19的样子。使用者可以容易地得知哪个设备驱 动程序被作为卸载的目标。 如图11所示,端口名按照与键名"\HKEY_LOCAL_MACHINE\Soffware\Br\BR MFL \Z2\BrMF1\3"相关联的方式存储,该键名指出了相应的多功能设备2并且包括了指明涉 及的多功能设备2的型号的"BrMF1"数据。通过这种方式,端口名以与各个设备的键名相 关联的方式存储,各个设备的键名包括指明涉及的多功能设备的型号名的型号指定数据。 相应地,在S920中,建立图19的列表对话框用来显示所有连接到个人计算机1的设备2 的型号名"Br MF1"和"Br MFC2"。按照与所有包括型号名"Br MF1"的键名相关联的方式存 入安装注册表的端口名"Local"、"BLP 11.22.33.44_1"、和"BLP 11.22.33.45_1"被按照与涉 及的型号名相关联的方式显示。相似地,按照与所有包括型号名"Br MFC2"的键名相关联 的方式存入安装注册表的端口名"BLP 11.22.33.55_1"被按照与涉及的型号名相关联的方式 显示。使用者需要至少选择一个型号作为卸载目标。当S940中至少选择了一种型号后, 由按照与使用者选定的型号相关联的方式存储的所有端口名所指出的所有设备,在S950 中都被设置为使用者想要卸载的目标设备。相应地,根据使用者选定的型号可以卸载所 有的设备驱动程序。进一步,如果使用者希望卸载例如一个指定型号的所有设备驱动程 序,使用者可以通过简单地指明型号就作到这一点。图19的列表对话框相关于各个型号 显示出与该型号的所有设备相关联地存在安装注册表中的端口名。通过浏览该列表对话 框,使用者可以了解各个设备的型号。使用者能容易地选择指定设备或指定型号作为卸 载目标。 虽然上面结合具体实施例详细描述了本发明,对于那些熟悉本领域的技术人员,显 然可以在不脱离本发明的精神的情况下做出许多的修改变化,本发明的范围将由权利要 求限定。 举例而言,通过检测例如连接到个人计算机1的设备2的连接状态,要卸载的目标 设备可以被个人计算机1自动检测。在该情况下,可以省略图13-15的卸载过程中的S600 至S950。 在上面的描述中,安装程序和卸载程序最初被存储在CD-ROM 10中,由个人计算 机1读取,并被装载到个人计算机1中。然而,安装程序和卸载程序最初也可以被存储 在其他计算机可读的存储介质中,例如软盘、光盘(DVD-ROM等)、硬盘、ROM、或RAM, 并且在需要时由计算机装载并执行,或者通过网络由计算机装载并执行。 在上面的描述中,各个多功能设备2具有打印机功能、影像扫描仪功能、以及传真 通信功能中的至少一种功能。操作系统可以通过相应的输入/输出接口指导各个设备,通 过使用其相应功能处理图像数据。对于每个设备2,不必执行图像处理功能,例如打印机 功能、影像扫描仪功能、或传真通信功能。为了执行一个或多个功能,每个设备2只要 安装一个或多个设备驱动程序就足够了。个人计算机1的操作系统通过对于每个功能的 设备驱动程序控制各个设备2执行所涉及的该设备所具有的功能。 所述步骤S335可以先于或同时于步骤S330被执行。