本發(fā)明涉及一種用于安裝打印機驅(qū)動程序的技術(shù)。
背景技術(shù):
日本特開2002-366502號公報討論了一種當執(zhí)行對位于同一區(qū)段中的網(wǎng)絡(luò)打印機的搜索并且如果查找到新的網(wǎng)絡(luò)打印機時,用于安裝打印機驅(qū)動程序的技術(shù)。
技術(shù)實現(xiàn)要素:
根據(jù)本發(fā)明的一方面,一種信息處理裝置,所述信息處理裝置包括:獲取單元,其被構(gòu)造為從操作系統(tǒng)獲取對網(wǎng)絡(luò)上的打印機的搜索結(jié)果,在所述搜索結(jié)果中排除了,針對各個安裝了第一類型的打印機驅(qū)動程序的打印機,以及針對各個安裝了第二類型的打印機驅(qū)動程序的打印機;識別單元,其被構(gòu)造為從各個安裝了第一類型的打印機驅(qū)動程序所針對的打印機當中,識別可安裝第二類型的打印機驅(qū)動程序的打印機;以及顯示單元,其被構(gòu)造為顯示由獲取單元獲取的搜索結(jié)果中包括的打印機和由識別單元識別的打印機,作為要安裝第二類型的打印機驅(qū)動程序的打印機的候選。
通過下面參照附圖對示例性實施例的描述,本發(fā)明的其他特征將變得清楚。
附圖說明
圖1是例示客戶端、服務(wù)器和打印機連接到網(wǎng)絡(luò)的構(gòu)造的圖。
圖2是例示計算機系統(tǒng)的硬件和軟件的框圖。
圖3是例示安裝程序模塊的框圖。
圖4是例示wsd打印機搜索處理的流程圖。
圖5是例示安裝程序模塊的打印機搜索畫面的圖。
圖6是例示wsd打印機安裝處理的流程圖。
圖7是例示wsd打印機安裝處理的流程圖。
圖8是例示顯示詢問用戶是否刪除現(xiàn)有打印機隊列的消息的畫面的示例的圖。
圖9是例示wsd打印機安裝處理的流程圖。
圖10是例示請求用戶確認是否安裝v4驅(qū)動程序的畫面的示例的圖。
圖11是例示wsd打印機安裝處理的流程圖。
具體實施方式
根據(jù)操作系統(tǒng)的規(guī)范,當進行對打印機的搜索時,可以從通過搜索獲得的搜索結(jié)果中排除已安裝打印機驅(qū)動程序的打印機。這可能導(dǎo)致這樣的問題,即,用戶無法從搜索結(jié)果中選擇用戶期望安裝打印機驅(qū)動程序所針對的打印機。例如,假設(shè)用戶嘗試針對打印機安裝打印機驅(qū)動程序,并且該打印機驅(qū)動程序的類型與針對該打印機已安裝的打印機驅(qū)動程序的類型不同。在這種情況下,由于從搜索結(jié)果中排除了該打印機,因此用戶無法從搜索結(jié)果中選擇該打印機。
相反,根據(jù)本發(fā)明的示例性實施例,即使在具有上述問題的環(huán)境下,對于已經(jīng)安裝了打印機驅(qū)動程序所針對的打印機,也可以安裝其他不同類型的打印機驅(qū)動程序。
從windows(注冊商標)vista引入了針對設(shè)備的web服務(wù)(在下文中也被稱為“wsd”)。wsd是用于將打印機連接到作為信息處理裝置的示例的客戶端計算機(在下文中也被稱為“個人計算機(pc)”)的構(gòu)造。使用wsd的ws-發(fā)現(xiàn)功能,可以向pc通知能夠連接到pc的打印機。此外,在windows(注冊商標)8.1之中或之后,使用ws-發(fā)現(xiàn)功能可以在pc中自動安裝打印機驅(qū)動程序。
對于用戶來說在pc中自動安裝的打印機驅(qū)動程序可能不是最優(yōu)的打印機驅(qū)動程序。例如,假設(shè)使用ws-發(fā)現(xiàn)功能將打印機驅(qū)動程序安裝在從來沒有安裝過由硬件供應(yīng)商直接提供的打印機驅(qū)動程序的pc中。在這種情況下,安裝的打印機驅(qū)動程序是附裝到操作系統(tǒng)(os)的打印機驅(qū)動程序。
在本說明書中,描述兩種類型的打印機驅(qū)動程序。第一種類型的打印機驅(qū)動程序是附裝到os的打印機驅(qū)動程序,并被稱為“內(nèi)嵌驅(qū)動程序(inboxdriver)”。這代表包括在os中或os的補丁中的設(shè)備驅(qū)動程序。由于內(nèi)嵌驅(qū)動程序附裝到os,因此從用戶簡單地期望使用硬件的情況的角度來看,因為不需要單獨安裝驅(qū)動程序,所以內(nèi)嵌驅(qū)動程序?qū)τ脩魜碚f是非常方便的。然而,為了在支持os的發(fā)布之后被發(fā)布的新設(shè)備,普遍創(chuàng)建內(nèi)嵌驅(qū)動程序。當普遍創(chuàng)建內(nèi)嵌驅(qū)動程序時,必須限制功能的數(shù)量。結(jié)果是,一型號專用的功能可能對用戶不可用。此外,就打印質(zhì)量和打印性能而言,內(nèi)嵌驅(qū)動程序針對它的目標型號可能不是最優(yōu)的。在將附裝到os的打印機驅(qū)動程序稱為內(nèi)嵌驅(qū)動程序的同時,將由硬件供應(yīng)商直接提供的打印機驅(qū)動程序稱為“外裝驅(qū)動程序(outboxdrvier)”。這是第二種類型的打印機驅(qū)動程序。為了最優(yōu)地使用硬件,用戶期望安裝由硬件供應(yīng)商提供的外裝驅(qū)動程序。
同時,一旦安裝了打印機的內(nèi)嵌驅(qū)動程序,則os的規(guī)范禁止通過使用ws-發(fā)現(xiàn)功能對可應(yīng)用型號的打印機的搜索。此外,在windows(注冊商標)的特定條件下,在不向用戶提供通知的情況下,內(nèi)嵌驅(qū)動程序可以被自動安裝在連接到wsd端口的設(shè)備中。這防止使用ws-發(fā)現(xiàn)功能安裝外裝驅(qū)動程序。
在本說明書中,當安裝打印機驅(qū)動程序時,安裝程序還將已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機包括在通過使用ws-發(fā)現(xiàn)功能搜索而獲得的打印機型號列表中。因此可以安裝外裝驅(qū)動程序。
圖1是例示打印系統(tǒng)的構(gòu)造的示例的系統(tǒng)構(gòu)造圖,根據(jù)本發(fā)明的第一示例性實施例的打印處理系統(tǒng)的pc、服務(wù)器和打印裝置可以應(yīng)用到該打印系統(tǒng)。根據(jù)本示例性實施例的打印系統(tǒng)包括一個或多個客戶端計算機(在下文中被稱為pc)100(例如為每個用戶提供一個)、一個或多個服務(wù)器2000(例如,每層安裝一個)、一個或多個打印機2500(例如,每層安裝一個)。該打印系統(tǒng)具有這樣的構(gòu)造,即,pc100、服務(wù)器2000和打印機2500經(jīng)由網(wǎng)絡(luò)3000連接。網(wǎng)絡(luò)3000包括諸如個人區(qū)域網(wǎng)(pan)和局域網(wǎng)(lan)等的從小至大的網(wǎng)絡(luò)。上述設(shè)備連接到全部這些網(wǎng)絡(luò)。作為選擇,在云環(huán)境中的服務(wù)器和打印機可以連接。
wsd是用于將打印機2500網(wǎng)絡(luò)連接到服務(wù)器2000或pc100的打印機端口的一種類型的協(xié)議。wsd的功能之一是ws-發(fā)現(xiàn)功能。使用ws-發(fā)現(xiàn)功能,可以向pc通知能夠連接到pc的打印機。用戶能夠從搜索結(jié)果列表選擇可應(yīng)用的打印機(例如,打印機2501),并且針對所選擇的打印機安裝打印機驅(qū)動程序。此外,在特定的網(wǎng)絡(luò)環(huán)境下,可以針對連接的打印機2501自動安裝打印機驅(qū)動程序(在下文中被簡稱為“驅(qū)動程序”)1053(圖2中例示)。
圖2是主要例示根據(jù)本示例性實施例的代表pc100的典型計算機的硬件的框圖。中央處理單元(cpu)101根據(jù)存儲在主存儲設(shè)備102的只讀存儲器(rom)1021或隨機存取存儲器(ram)1022中或存儲在輔助存儲設(shè)備105中的程序,控制整個pc100。此外,cpu101基于存儲在輔助存儲設(shè)備105中的程序而執(zhí)行處理,來實現(xiàn)圖2中例示的pc100的軟件構(gòu)造和要在下面描述的流程圖的各步驟。當cpu101進行各種類型的處理時,ram1022也被用作工作區(qū)域。輔助存儲設(shè)備105存儲包括應(yīng)用程序1051、安裝程序1052、打印機驅(qū)動程序1053和os1054的各種程序。本說明書中描述的安裝程序1052是用于安裝版本4(v4)的外裝驅(qū)動程序的軟件。v4打印機驅(qū)動程序在從windows(注冊商標)8引入的新架構(gòu)中運行。輸入設(shè)備經(jīng)由輸入接口(i/f)103連接到pc100。輸入設(shè)備包括以鼠標和觸摸面板為代表的鍵盤108和指點設(shè)備109。諸如監(jiān)視器110等的輸出設(shè)備連接到輸出i/f104并根據(jù)程序指令顯示用戶界面(ui)。經(jīng)由這些輸入和輸出設(shè)備接收到針對程序的用戶操作。通信i/f106連接到網(wǎng)絡(luò)3000并且使得能夠與pc100的外部設(shè)備通信。外部設(shè)備的示例包括圖1中例示的任意的服務(wù)器2000和打印機2500。上述的模塊通過通用數(shù)據(jù)系統(tǒng)總線107連接,并且由此使得能夠交換數(shù)據(jù)。能夠經(jīng)由壓縮盤只讀存儲器(cd-rom)或通用串行總線(usb)存儲器(未例示)將程序(1051至1054)添加到輔助存儲設(shè)備105。也能夠經(jīng)由網(wǎng)絡(luò)3000將程序(1051至1054)添加到輔助存儲設(shè)備105。不言而喻的是,除非另有說明,否則本技術(shù)可以被應(yīng)用到任何類型的設(shè)備構(gòu)造,只要執(zhí)行本技術(shù)的功能即可??梢圆捎萌魏晤愋偷臉?gòu)造,包括單獨的設(shè)備、由多個設(shè)備構(gòu)造的系統(tǒng)和經(jīng)由諸如lan和廣域網(wǎng)(wan)等的網(wǎng)絡(luò)建立連接并進行處理的系統(tǒng)。
圖3是例示根據(jù)本示例性實施例的安裝程序模塊的框圖的示例的圖。該框圖基本上包括,網(wǎng)絡(luò)搜索模塊10520、驅(qū)動程序安裝模塊10521和打印機隊列安裝模塊10523。這些軟件模塊存儲在輔助存儲設(shè)備105中。響應(yīng)于用戶的請求或來自其他系統(tǒng)的請求,這些軟件模塊任一個從輔助存儲設(shè)備105被加載到ram1022,然后由cpu101執(zhí)行。
網(wǎng)絡(luò)搜索模塊10520包括互聯(lián)網(wǎng)協(xié)議版本(ipv)4搜索單元400、ipv6搜索單元401和wsd搜索單元402。網(wǎng)絡(luò)搜索模塊10520具有搜索經(jīng)由網(wǎng)絡(luò)3000連接的并且能夠安裝打印機驅(qū)動程序所針對的打印機的功能。搜索協(xié)議包括ipv4、ipv6和wsd。根據(jù)用戶指令,網(wǎng)絡(luò)搜索模塊10520使用協(xié)議中的各個與打印機2500進行通信,并且列出各個能夠安裝打印機驅(qū)動程序的打印機型號。ipv4搜索單元400將搜索結(jié)果列表存儲進ipv4搜索結(jié)果列表403。ipv6搜索單元401將搜索結(jié)果列表存儲進ipv6搜索結(jié)果列表404。wsd搜索單元402將搜索結(jié)果列表存儲進wsd搜索結(jié)果列表405。尤其是,當使用wsd時,網(wǎng)絡(luò)搜索模塊10520使用稱為ws-發(fā)現(xiàn)的特殊方法來搜索能夠安裝打印機驅(qū)動程序所針對的打印機。當使用ws-發(fā)現(xiàn)時,通過使用wsd從搜索目標中排除在pc100中已經(jīng)安裝了打印機驅(qū)動程序所針對的打印機。因此,這樣的打印機不被列為能夠安裝打印機驅(qū)動程序所針對的打印機。
驅(qū)動程序安裝模塊10521是用于安裝打印機驅(qū)動程序的模塊。
打印機隊列安裝模塊10523包括usb打印機安裝單元406、網(wǎng)絡(luò)打印機安裝單元407和wsd打印機安裝單元408。usb打印機安裝單元406提前使用驅(qū)動程序安裝模塊10521對作為目標驅(qū)動程序的打印機驅(qū)動程序1053進行安裝。然后,usb打印機安裝單元406進行usb即插即用安裝。在即插即用安裝中,當打印機2501連接到pc100時,os1054自動進行打印機驅(qū)動程序1053的安裝和設(shè)置。利用這種方法,用戶能夠通過利用線纜僅僅將pc100連接到打印機2501來使打印機驅(qū)動程序1053根據(jù)過程(procedure)自動安裝。因此,該技術(shù)提高了使用性。同樣對于wsd端口,也能夠進行即插即用安裝。在這種情況下,wsd打印機安裝單元408安裝打印機驅(qū)動程序。當使用wsd端口時,不需要連接線纜。用戶能夠僅通過從由搜索查找到的打印機的列表中,選擇打印機2501作為目標打印機,使打印機驅(qū)動程序根據(jù)過程自動安裝。
將參照圖4中例示的流程圖描述根據(jù)本示例性實施例的wsd打印機搜索處理。首先,在步驟s500中,開始流程圖中的處理。具體地,當用戶啟動安裝程序1052時,顯示改變?yōu)閳D5中例示的打印機搜索畫面600。然后,用戶選擇wsd設(shè)備標簽601來發(fā)出wsd打印機搜索請求。當接收到wsd打印機搜索請求時,流程圖中的處理開始。除非另有說明,安裝程序1052進行流程圖中的各步驟。在步驟s501中,使用wsd搜索單元402的ws-發(fā)現(xiàn)功能并且安裝程序1052從os獲取搜索結(jié)果作為支持wsd即插即用安裝的打印機的列表。在搜索結(jié)果中,包括在網(wǎng)絡(luò)上的并通過搜索發(fā)現(xiàn)的打印機。os從查找到的打印機中排除已經(jīng)在pc100中安裝內(nèi)嵌驅(qū)動程序或外裝驅(qū)動程序所針對的打印機。接下來,在步驟s502中,安裝程序1052將通過搜索發(fā)現(xiàn)的各個打印機型號名稱添加到wsd搜索結(jié)果列表405中。wsd搜索結(jié)果列表405是用于在打印機搜索畫面600上顯示通過搜索而查找到的打印機的列表。在步驟s503中,安裝程序1052列出各自與已經(jīng)安裝在pc100中的打印機驅(qū)動程序相對應(yīng)的打印機隊列,并且將列出的打印機隊列存儲進存儲器作為打印機隊列列表。
在步驟s504中和后續(xù)的步驟中,安裝程序1052針對在步驟s503中列出打印機隊列中的各個進行處理。在步驟s504中,安裝程序1052檢驗在處理下的打印機隊列的信息。在步驟s505中,安裝程序1052基于在步驟s504中獲取的打印機隊列的信息,確定在處理下的打印機隊列的連接端口是否是wsd端口,以及與在處理下的打印機隊列相對應(yīng)的打印機驅(qū)動程序是否是內(nèi)嵌驅(qū)動程序。如果連接端口不是wsd端口或者打印機驅(qū)動程序不是內(nèi)嵌驅(qū)動程序(步驟s505中為“否”),則打印機隊列與目標打印機不對應(yīng),并且因此安裝程序1052檢驗打印機隊列列表中的下一個打印機隊列。如果連接端口是wsd端口并且打印機驅(qū)動程序是內(nèi)嵌驅(qū)動程序(步驟s505中為“是”),則處理進行到步驟s506。
在步驟s506中,安裝程序1052與在pc100中安裝了內(nèi)嵌驅(qū)動程序所針對的打印機2501進行通信來獲取其型號名稱和即插即用標識符(pnpid)。pnpid是在即插即用安裝時唯一地識別打印機驅(qū)動程序的id。
接下來,在步驟s507中,基于獲取的pnpid,安裝程序1052檢查打印機2501是否是能夠安裝外裝驅(qū)動程序所針對的型號。pnpid是從選項中選出并設(shè)置在打印機中的id。選項包括v3和v4二者。因此,已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機2501的pnpid可能不是支持v4驅(qū)動程序的pnpid。在這種情況下,即使進行了wsd即插即用安裝,v4驅(qū)動程序的安裝也會失敗。因此,需要提前檢查pnpid來查明是否能夠安裝v4外裝驅(qū)動程序。因此,能夠通過與已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機進行通信,來識別能夠安裝外裝驅(qū)動程序所針對的打印機。在步驟s508中,安裝程序1052基于檢查,確定pnpid是否是與能夠安裝外裝驅(qū)動程序所針對的打印機相對應(yīng)的pnpid。如果pnpid不是使得能夠安裝的pnpid(步驟s508中為“否”),則對應(yīng)的打印機不是目標打印機。因此,安裝程序1052檢驗打印機隊列列表中的下一個打印機隊列。如果pnpid是使得能夠安裝的pnpid(步驟s508中為“是”),則處理進行到步驟s509。在步驟s509中,安裝程序1052基于步驟s503中列出的打印機隊列當中的對應(yīng)的打印機隊列的信息,將型號名稱添加到wsd搜索結(jié)果列表405中。
在步驟s510中,安裝程序1052確定是否針對各自與安裝在pc100上的打印機驅(qū)動程序相對應(yīng)的全部打印機隊列進行了上述的檢驗。當針對全部打印機隊列完成檢驗時(步驟s510中為“是”),處理進行到步驟s511。在步驟s511中,安裝程序1052顯示各個支持wsd即插即用安裝的打印機的列表602。通過步驟s502和步驟s509中的處理創(chuàng)建列表602。
圖5是例示作為各個支持wsd即插即用安裝的打印機的列表的示例的列表顯示畫面602的圖。在該示例中,“ir-advcxxxx”和“ir-advcyyyy”是通過ws-發(fā)現(xiàn)而查找到的打印機。最后一行的名為“ir-advczzzz”的打印機是通過wsd即插即用安裝已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機。在本說明書中,能夠通過進行圖4中例示的步驟s509中的處理來顯示打印機如同通過ws-發(fā)現(xiàn)而查找到的打印機。以這種方式,從os1054獲取的結(jié)果列表中的打印機(a)和通過步驟s506和步驟s507識別的打印機(b)都能夠被顯示為要安裝外裝驅(qū)動程序所針對的打印機的候選。在圖5例示的示例中,在單個畫面上顯示打印機(a)和打印機(b)二者。然而,這些打印機可以在不同的畫面上分開的顯示。
接下來,將參照圖6中例示的流程圖描述根據(jù)本示例性實施例的使用wsd的打印機驅(qū)動程序安裝處理。在步驟s700中,在從列表顯示畫面602中選擇期望的打印機之后,當用戶按下“下一步”按鈕時,打印機驅(qū)動程序安裝處理開始。列表顯示畫面602包括由安裝程序1052在搜索中查找到的、支持wsd即插即用安裝的打印機。接下來,在步驟s701中,安裝程序1052檢查所選擇的打印機2501是否是已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機。下面描述的是檢查所選擇的打印機2501是否是已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機的可能的方法。首選,當在步驟s509中將打印機添加到wsd搜索結(jié)果列表405中時,設(shè)置表示安裝了內(nèi)嵌驅(qū)動程序的標志。接下來,參照該標志確定所選擇的打印機是否是安裝了內(nèi)嵌驅(qū)動程序所針對的打印機。然而,檢查的方法不限于該示例。
當所選擇的打印機2501不是已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機時(步驟s701中為“否”),則處理進行到步驟s704。在步驟s704中,安裝程序1052進行正常wsd即插即用安裝。當所選擇的打印機2501是已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機時(步驟s701中為“是”),則處理進行到步驟s702。在步驟s702中,安裝程序1052刪除對應(yīng)的打印機隊列。結(jié)果是,刪除了內(nèi)嵌驅(qū)動程序。在步驟s703中,安裝程序1052通過再次使用ws-發(fā)現(xiàn)進行的wsd設(shè)備搜索而查找到可應(yīng)用的打印機2501,然后針對查找到的打印機進行wsd即插即用安裝。
以這種方式,當將已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機選擇為要安裝外裝驅(qū)動程序所針對的打印機時,將內(nèi)嵌驅(qū)動程序刪除。接下來,進行搜索以查找網(wǎng)絡(luò)上的打印機,并且針對查找到的打印機安裝外裝驅(qū)動程序。
使用上述過程,即使針對打印機2501通過wsd即插即用安裝已經(jīng)安裝了內(nèi)嵌驅(qū)動程序,也能夠針對打印機2501安裝外裝驅(qū)動程序。這使得能夠針對打印機安裝最優(yōu)驅(qū)動程序。
在第一示例性實施例中描述的方法中,在步驟s702中自動刪除了已經(jīng)安裝的內(nèi)嵌驅(qū)動程序。然而,出現(xiàn)了如下問題,即,不能確定被刪除的打印機驅(qū)動程序是否是用戶有意安裝的驅(qū)動程序。如果被刪除的打印機驅(qū)動程序是用戶有意安裝的驅(qū)動程序,則用外裝驅(qū)動程序替換內(nèi)嵌驅(qū)動程序,與用戶安裝內(nèi)嵌驅(qū)動程序時的意圖相悖。
在第二示例性實施例中,提供了這類問題的解決方案。在該解決方案中,在步驟s702中刪除對應(yīng)的打印機隊列之前,向用戶通知消息,該消息說明與已經(jīng)安裝的打印機驅(qū)動程序相對應(yīng)打印機隊列將被刪除。
圖7是例示上述解決方案的流程圖。步驟s800和步驟s801與第一示例性實施例的步驟s700和步驟s701類似,因此將不進行描述。如果所選擇的打印機不是已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機(步驟s801中為“否”),則處理進行到步驟s808。在步驟s808中,安裝程序1052進行正常wsd即插即用安裝。如果所選擇的打印機是已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機(步驟s801中為“是”),則處理進行到步驟s802。在步驟s802中,安裝程序1052經(jīng)由詢問是否刪除對應(yīng)的打印機隊列,即現(xiàn)有的打印機隊列的消息來通知用戶。例如,可以顯示圖8中例示的消息對話框來提示用戶選擇是否刪除內(nèi)嵌驅(qū)動程序。在步驟s803中,安裝程序1052確定是否接收到用于刪除內(nèi)嵌驅(qū)動程序的指令。如果根據(jù)用戶的選擇要刪除現(xiàn)有的打印機隊列,即當接收到用于刪除內(nèi)嵌驅(qū)動程序的指令時(步驟s803中為“是”),則處理進行到步驟s804。在步驟s804中,安裝程序1052刪除現(xiàn)有的打印機隊列。后來,在步驟s805中,再次使用ws-發(fā)現(xiàn)來執(zhí)行wsd設(shè)備搜索,然后安裝程序1052針對通過搜索而查找到的可應(yīng)用的打印機2501進行wsd即插即用安裝。步驟s804和步驟s805與第一示例性實施例的步驟s702和步驟s703類似。
如果根據(jù)用戶的選擇不刪除現(xiàn)有的打印機隊列(步驟s803中為“否”),則安裝程序1052通過使用改變連接端口的方法進行安裝而不進行wsd即插即用安裝。首先,在步驟s806中,安裝程序1052針對可應(yīng)用的打印機2501安裝外裝驅(qū)動程序。接下來,在步驟s807中,當對外裝驅(qū)動程序的安裝完成時,安裝程序1052將由外裝驅(qū)動程序的安裝創(chuàng)建的打印機隊列的連接端口,設(shè)置為與對應(yīng)于現(xiàn)有的內(nèi)嵌驅(qū)動程序的打印機隊列的wsd端口相同的端口。
使用上述的過程,能夠在維持與通過wsd即插即用安裝已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機相對應(yīng)的打印機隊列的同時,安裝新的外裝驅(qū)動程序。從而用戶能夠通過適當?shù)剡x擇現(xiàn)有的打印機驅(qū)動程序或者新的打印機驅(qū)動程序來執(zhí)行打印。
在假設(shè)與用于即插即用安裝的打印機2501中設(shè)置的pnpid相對應(yīng)的驅(qū)動程序是v4的情況下,描述了第一和第二示例性實施例。然而,v3驅(qū)動程序的id可以被設(shè)置為打印機2501中的pnpid。在這種情況下,wsd即插即用安裝可能失敗,或者可能安裝用戶不期望的打印機驅(qū)動程序。
在第三示例性實施例中,提供了這類問題的解決方案。在該解決方案中,即使與打印機2501中設(shè)置的pnpid相對應(yīng)的驅(qū)動程序是v3,也能夠安裝v4驅(qū)動程序。將描述該解決方案。
圖9是例示上述解決方案的流程圖。步驟s900和步驟s901與第一示例性實施例的步驟s700和步驟s701類似,因此將不進行描述。如果所選擇的打印機不是已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機(步驟s901中為“否”),則處理進行到步驟s907。在步驟s907中,安裝程序1052進行正常wsd即插即用安裝。如果所選擇的打印機是已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機(步驟s901中為“是”),則處理進行到步驟s902。在步驟s902中,安裝程序1052檢查在打印機中設(shè)置的pnpid是否是針對v3驅(qū)動程序的id。具體地,安裝程序1052通過與打印機2501通信,來檢查pnpid與設(shè)置為v3驅(qū)動程序的屬性的pnpid是否匹配。在步驟s902中,安裝程序1052可以檢查pnpid是否是針對v4驅(qū)動程序的id。在這種情況下,步驟s902中的“是”和“否”是相反的。如果pnpid不是針對v3驅(qū)動程序的id(步驟s902中為“否”),則處理進行到步驟s903,然后到步驟s904以進行wsd即插即用安裝。步驟s903和步驟s904與第一示例性實施例的步驟s702和步驟s703類似,因此將不進行描述。如果pnpid是針對v3驅(qū)動程序的id(步驟s902中為“是”),則處理進行到步驟s905。在步驟s905中,安裝程序1052進行安裝,然后改變連接端口。當確定pnpid是針對v3驅(qū)動程序的id時,安裝程序1052可以請求用戶確認是否安裝v4驅(qū)動程序。例如,可以顯示圖10中例示的消息對話框來從用戶獲得確認。然而,用于確認的方法不限于該示例。用于進行安裝然后改變連接端口的步驟s905和步驟s906與第二示例性實施例的步驟s806和步驟s807類似,因此將不進行描述。
使用上述的過程,即使通過wsd即插即用安裝而安裝內(nèi)嵌驅(qū)動程序所針對的打印機的pnpid是v3驅(qū)動程序的id,也能夠安裝用戶期望的v4驅(qū)動程序。
假設(shè)已經(jīng)安裝的打印機驅(qū)動程序是否是用戶期望的打印機驅(qū)動程序是未知的而描述了第二示例性實施例。在第四示例性實施例中,能夠確定現(xiàn)有的打印機隊列與自動安裝的打印機驅(qū)動程序是否相對應(yīng),如果對應(yīng),僅刪除確定的打印機隊列,然后安裝外裝驅(qū)動程序。下面將描述該方法。
圖11是例示上述方法的流程圖。在該方法中,確定現(xiàn)有的打印機驅(qū)動程序是否是自動安裝的打印機驅(qū)動程序。如果是自動安裝的打印機驅(qū)動程序,則刪除與現(xiàn)有的打印機驅(qū)動程序相對應(yīng)的打印機隊列,并且如果不是自動安裝的打印機驅(qū)動程序,則安裝打印機驅(qū)動程序以與對應(yīng)于現(xiàn)有的打印機隊列的打印機驅(qū)動程序共存。
首先,步驟s1001與第一示例性實施例的步驟s701類似,因此將不進行描述。如果所選擇的打印機不是已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機(步驟s1001中為“否”),則處理進行到步驟s1011。在步驟s1011中,安裝程序1052進行正常wsd即插即用安裝。
如果所選擇的打印機是已經(jīng)安裝了內(nèi)嵌驅(qū)動程序所針對的打印機(步驟s1001中為“是”),則處理進行到步驟s1002。在步驟s1002中,安裝程序1052檢查對應(yīng)的內(nèi)嵌驅(qū)動程序是否是自動安裝的驅(qū)動程序。這里將描述用于檢查對應(yīng)的內(nèi)嵌驅(qū)動程序是否是自動安裝的驅(qū)動程序的兩種具體方法。第一種方法用于檢查是否附加了表示內(nèi)嵌驅(qū)動程序是自動安裝的屬性。第二種方法使用應(yīng)用編程接口(applicationprogramminginterface,api)用于查找在os1054中準備的內(nèi)嵌驅(qū)動程序是否被自動安裝。要采用的方法不限于這兩種方法,只要能夠檢查對應(yīng)的內(nèi)嵌驅(qū)動程序是否是自動安裝的驅(qū)動程序即可。
如果對應(yīng)的內(nèi)嵌驅(qū)動程序不是自動安裝的驅(qū)動程序(步驟s1002中為“否”),則處理進行到步驟s1009和步驟s1010以進行安裝,然后改變連接端口。用于進行安裝然后改變連接端口的步驟s1009和步驟s1010與第二示例性實施例的步驟s806和步驟s807類似,因此將不進行描述。
如果對應(yīng)的內(nèi)嵌驅(qū)動程序是自動安裝的驅(qū)動程序(步驟s1002中為“是”),則處理進行到步驟s1003。在步驟s1003中,安裝程序1052檢查在打印機2501中設(shè)置的pnpid是否是針對v3驅(qū)動程序的id。如果pnpid不是針對v3驅(qū)動程序的id(步驟s1003中為“否”),則處理進行到步驟s1004和步驟s1005以進行wsd即插即用安裝。用于進行wsd即插即用安裝的步驟s1004和步驟s1005與第一示例性實施例的步驟s702和步驟s703類似,因此將不進行描述。如果pnpid是針對v3驅(qū)動程序的id(步驟s1003中為“是”),則處理進行到步驟s1006和步驟s1007以在安裝后設(shè)置連接端口而不進行wsd即插即用安裝。用于在安裝后設(shè)置連接端口的步驟s1006和步驟s1007與第二示例性實施例的步驟s806和步驟s807類似,因此將不進行描述。在步驟s1008中,安裝程序1052刪除與現(xiàn)有的內(nèi)嵌驅(qū)動程序相對應(yīng)的打印機隊列。
在上述過程中,如果打印機隊列與自動安裝的打印機驅(qū)動程序相對應(yīng),即用戶不期望的打印機隊列,則當安裝新驅(qū)動程序時自動刪除該打印機隊列。如果打印機隊列與用戶有意安裝的打印機驅(qū)動程序相對應(yīng),則不刪除打印機隊列。因此能夠提供反應(yīng)用戶意圖的打印環(huán)境。
根據(jù)示例性實施例,對于已經(jīng)安裝了打印機驅(qū)動程序所針對的打印機,能夠安裝不同類型的打印機驅(qū)動程序。
其他實施例
還可以通過讀出并執(zhí)行記錄在存儲介質(zhì)(也可更完整地稱為“非暫時性計算機可讀存儲介質(zhì)”)上的計算機可執(zhí)行指令(例如,一個或更多個程序)以執(zhí)行上述實施例中的一個或更多個的功能、并且/或者包括用于執(zhí)行上述實施例中的一個或更多個的功能的一個或更多個電路(例如,專用集成電路(asic))的系統(tǒng)或裝置的計算機,來實現(xiàn)本發(fā)明的實施例,并且,可以利用通過由系統(tǒng)或裝置的計算機例如讀出并執(zhí)行來自存儲介質(zhì)的計算機可執(zhí)行指令以執(zhí)行上述實施例中的一個或更多個的功能、并且/或者控制一個或更多個電路以執(zhí)行上述實施例中的一個或更多個的功能的方法,來實現(xiàn)本發(fā)明的實施例。計算機可以包括一個或更多個處理器(例如,中央處理單元(cpu)、微處理單元(mpu)),并且可以包括分開的計算機或分開的處理器的網(wǎng)絡(luò),以讀出并執(zhí)行計算機可執(zhí)行指令。計算機可執(zhí)行指令可以例如從網(wǎng)絡(luò)或存儲介質(zhì)被提供給計算機。存儲介質(zhì)可以包括例如硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、分布式計算系統(tǒng)的存儲器、光盤(諸如壓縮光盤(cd)、數(shù)字通用光盤(dvd)或藍光光盤(bd)tm)、閃存裝置以及存儲卡等中的一個或更多個。
本發(fā)明的實施例還可以通過如下的方法來實現(xiàn),即,通過網(wǎng)絡(luò)或者各種存儲介質(zhì)將執(zhí)行上述實施例的功能的軟件(程序)提供給系統(tǒng)或裝置,該系統(tǒng)或裝置的計算機或是中央處理單元(cpu)、微處理單元(mpu)讀出并執(zhí)行程序的方法。
雖然已經(jīng)參照示例性實施例對本發(fā)明進行了描述,但是應(yīng)該理解,本發(fā)明不限于所公開的示例性實施例。應(yīng)當對以下權(quán)利要求的范圍給予最寬的解釋,以使其涵蓋所有這些變型例以及等同的結(jié)構(gòu)及功能。