專(zhuān)利名稱(chēng):Twain協(xié)議的遠(yuǎn)程重定向方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種TWAIN協(xié)議的遠(yuǎn)程重定向方法及系統(tǒng)。
背景技術(shù):
TWAIN協(xié)議,是應(yīng)用軟件從計(jì)算機(jī)外設(shè)獲取靜態(tài)圖像的國(guó)際標(biāo)準(zhǔn)。TWAIN協(xié)議的協(xié)議架構(gòu)使得TWAIN協(xié)議只能在同一系統(tǒng)環(huán)境中使用,不能支持虛擬化架構(gòu)。在虛擬化架構(gòu)中無(wú)法直接使用TWAIN協(xié)議,即客戶(hù)端的本機(jī)系統(tǒng)通過(guò)遠(yuǎn)程桌面接入虛擬桌面,將服務(wù)端構(gòu)架在遠(yuǎn)程桌面系統(tǒng)中時(shí),通過(guò)客戶(hù)端本機(jī)系統(tǒng)訪問(wèn)服務(wù)端第三方應(yīng)用程序時(shí),因?yàn)榉?wù)端的第三方應(yīng)用程序運(yùn)行在服務(wù)器系統(tǒng)中,而TWAIN驅(qū)動(dòng)安裝在客戶(hù)端上,二者在不同的 系統(tǒng)環(huán)境中運(yùn)行,因此服務(wù)端支持TWAIN協(xié)議的第三方應(yīng)用程序無(wú)法直接使用客戶(hù)端本機(jī)系統(tǒng)的TWAIN驅(qū)動(dòng),導(dǎo)致服務(wù)端支持TWAIN協(xié)議的第三方應(yīng)用程序無(wú)法直接操作客戶(hù)端的TWAIN驅(qū)動(dòng)。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問(wèn)題,在于提供一種TWAIN協(xié)議的遠(yuǎn)程重定向方法及系統(tǒng)。本發(fā)明采用以下技術(shù)方案解決上述技術(shù)問(wèn)題技術(shù)方案一、一種TWAIN協(xié)議的遠(yuǎn)程重定向方法,包括如下步驟步驟I、客戶(hù)端本機(jī)系統(tǒng)通過(guò)遠(yuǎn)程桌面接入虛擬桌面,將服務(wù)端構(gòu)架在虛擬桌面中,用戶(hù)在虛擬桌面中打開(kāi)支持TWAIN協(xié)議的第三方應(yīng)用程序;步驟2、服務(wù)端的TWAIN協(xié)議截獲模塊截獲所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令,并將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令發(fā)送至服務(wù)端的第一網(wǎng)絡(luò)通信模塊;步驟3、第一網(wǎng)絡(luò)通信模塊通過(guò)虛擬通道將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令發(fā)送至客戶(hù)端的第二網(wǎng)絡(luò)通信模塊;步驟4、第二網(wǎng)絡(luò)通信模塊將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令傳送給客戶(hù)端的TWAIN協(xié)議處理模塊;步驟5、所述TWAIN協(xié)議處理模塊將接收到的所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令傳送給客戶(hù)端的TWAIN驅(qū)動(dòng),接著接收TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果,然后將所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果經(jīng)過(guò)第二網(wǎng)絡(luò)通信模塊發(fā)送至第一網(wǎng)絡(luò)通信模塊;步驟6、第一網(wǎng)絡(luò)通信模塊將接收到的所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果轉(zhuǎn)發(fā)至所述TWAIN協(xié)議截獲模塊,然后再由所述TWAIN協(xié)議截獲模塊將其返回至所述第三方應(yīng)用程序,從而實(shí)現(xiàn)了虛擬桌面中支持TWAIN協(xié)議的第三方應(yīng)用程序在客戶(hù)端的使用。進(jìn)一步地,所述TWAIN協(xié)議截獲模塊通過(guò)一新開(kāi)發(fā)的源管理器截獲TWAIN協(xié)議指令,所述源管理器能夠截獲TWAIN協(xié)議指令,并將TWAIN協(xié)議指令經(jīng)第一網(wǎng)絡(luò)通信模塊、虛擬通道傳遞給客戶(hù)端的TWAIN驅(qū)動(dòng)進(jìn)行處理。進(jìn)一步地,所述TWAIN協(xié)議截獲模塊還截獲Hook DSM_Entry函數(shù),抓取DSM_Entry函數(shù)的入?yún)?,即TWAIN協(xié)議指令,進(jìn)而達(dá)到截獲TWAIN協(xié)議指令的目的。進(jìn)一步地,所述TWAIN協(xié)議截獲模塊還通過(guò)Hook LoadLibrary函數(shù),當(dāng)檢測(cè)到第三方應(yīng)用程序載入服務(wù)端系統(tǒng)自帶的TWAIN源管理器動(dòng)態(tài)庫(kù)時(shí),改變LoadLibrary函數(shù)過(guò)程,使其載入本系統(tǒng)開(kāi)發(fā)的實(shí)現(xiàn)了 DSM_Entry接口的動(dòng)態(tài)庫(kù),當(dāng)?shù)谌綉?yīng)用程序調(diào)用DSM_Entry接口時(shí),服務(wù)端系統(tǒng)就能夠通過(guò)DSM_Entry函數(shù)入?yún)?,得知第三方?yīng)用程序的TWAIN協(xié)議指令,從而達(dá)到截獲TWAIN指令的目的。
技術(shù)方案二、一種TWAIN協(xié)議的遠(yuǎn)程重定向系統(tǒng),包括客戶(hù)端系統(tǒng),通過(guò)客戶(hù)端系統(tǒng)的遠(yuǎn)程桌面接入虛擬桌面,將服務(wù)端構(gòu)架在虛擬桌面中;服務(wù)端系統(tǒng),通過(guò)虛擬桌面打開(kāi)服務(wù)端系統(tǒng)中支持TWAIN協(xié)議的第三方應(yīng)用程序;所述遠(yuǎn)程重定向系統(tǒng)還包括設(shè)于服務(wù)端的TWAIN協(xié)議截獲模塊和第一網(wǎng)絡(luò)通信模塊、設(shè)于客戶(hù)端的TWAIN協(xié)議處理模塊和第二網(wǎng)絡(luò)通信模塊;所述TWAIN協(xié)議截獲模塊截獲所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令,并將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令發(fā)送至第一網(wǎng)絡(luò)通信模塊;所述第一網(wǎng)絡(luò)通信模塊通過(guò)虛擬通道將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令發(fā)送至第二網(wǎng)絡(luò)通信模塊;所述第二網(wǎng)絡(luò)通信模塊將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令傳送給客戶(hù)端的TWAIN協(xié)議處理模塊;所述TWAIN協(xié)議處理模塊將接收到的所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令傳送給客戶(hù)端的TWAIN驅(qū)動(dòng),接著接收TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果,然后將所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果經(jīng)過(guò)第二網(wǎng)絡(luò)通信模塊發(fā)送至第一網(wǎng)絡(luò)通信模塊;第一網(wǎng)絡(luò)通信模塊將接收到的所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果轉(zhuǎn)發(fā)至所述TWAIN協(xié)議截獲模塊,然后再由所述TWAIN協(xié)議截獲模塊將其返回至所述第三方應(yīng)用程序,從而實(shí)現(xiàn)了虛擬桌面中支持TWAIN協(xié)議的第三方應(yīng)用程序在客戶(hù)端的使用。進(jìn)一步地,所述TWAIN協(xié)議截獲模塊通過(guò)一新開(kāi)發(fā)的源管理器截獲TWAIN協(xié)議指令,所述源管理器能夠截獲TWAIN協(xié)議指令,并將TWAIN協(xié)議指令經(jīng)第一網(wǎng)絡(luò)通信模塊、虛擬通道、第二網(wǎng)絡(luò)通信模塊傳遞給客戶(hù)端的TWAIN驅(qū)動(dòng)進(jìn)行處理。進(jìn)一步地,所述TWAIN協(xié)議截獲模塊還截獲Hook DSM_Entry函數(shù),抓取DSM_Entry函數(shù)的入?yún)⒓碩WAIN協(xié)議指令,進(jìn)而達(dá)到截獲TWAIN協(xié)議指令的目的。進(jìn)一步地,所述TWAIN協(xié)議截獲模塊還通過(guò)Hook LoadLibrary函數(shù),當(dāng)檢測(cè)到第三方應(yīng)用程序載入服務(wù)端系統(tǒng)自帶的TWAIN源管理器動(dòng)態(tài)庫(kù)時(shí),改變LoadLibrary函數(shù)過(guò)程,使其載入本系統(tǒng)開(kāi)發(fā)的實(shí)現(xiàn)了 DSM_Entry接口的動(dòng)態(tài)庫(kù),當(dāng)?shù)谌綉?yīng)用程序調(diào)用DSM_Entry接口時(shí),服務(wù)端系統(tǒng)就能夠通過(guò)DSM_Entry函數(shù)入?yún)?,得知第三方?yīng)用程序的TWAIN協(xié)議指令,從而達(dá)到截獲TWAIN指令的目的。本發(fā)明具有如下優(yōu)點(diǎn)本發(fā)明通過(guò)截獲服務(wù)端支持TWAIN協(xié)議的第三方應(yīng)用程序的TWAIN協(xié)議指令,然后將該指令通過(guò)虛擬通道轉(zhuǎn)發(fā)給客戶(hù)端,客戶(hù)端解析和處理這些指令,最后將處理結(jié)果返回給服務(wù)端,實(shí)現(xiàn)虛擬桌面中的第三方應(yīng)用程序能夠使用客戶(hù)端中的TWAIN驅(qū)動(dòng)。本發(fā)明還提供了三種截獲方式1.替換系統(tǒng)TWAIN源管理器;2.直接截獲應(yīng)用程序的DSM_Entry的函數(shù)調(diào)用;3.截獲第三方應(yīng)用程序載入TWAIN源管理器的過(guò)程,改變其載入的源管理器;通過(guò)上述三種方式中的任意一種或多種方式截獲到系統(tǒng)的TWAIN指令,即DSM_Entry函數(shù)的參數(shù),然后將指令發(fā)送給客戶(hù)端的TWAIN驅(qū)動(dòng),從而達(dá)到應(yīng)用程序操作客戶(hù)端TWAIN驅(qū)動(dòng)的效果。
下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。圖I為本發(fā)明TWAIN協(xié)議的遠(yuǎn)程重定向方法的系統(tǒng)構(gòu)架圖。
具體實(shí)施方式
請(qǐng)參閱圖1,結(jié)合本發(fā)明的系統(tǒng)構(gòu)架圖對(duì)本發(fā)明的具體實(shí)施過(guò)程進(jìn)行詳細(xì)闡述。一種TWAIN協(xié)議的遠(yuǎn)程重定向方法,包括如下步驟步驟I、客戶(hù)端本機(jī)系統(tǒng)通過(guò)遠(yuǎn)程桌面接入虛擬桌面,將服務(wù)端構(gòu)架在虛擬桌面中,用戶(hù)在虛擬桌面中打開(kāi)服務(wù)端支持TWAIN協(xié)議的第三方應(yīng)用程序;步驟2、所述第三方應(yīng)用程序在打開(kāi)的過(guò)程中調(diào)用TWAIN協(xié)議指令,服務(wù)端通過(guò)一TWAIN協(xié)議截獲模塊截獲所述TWAIN協(xié)議指令,并將所述TWAIN協(xié)議指令發(fā)送至第一網(wǎng)絡(luò)通信模塊;所述TWAIN協(xié)議截獲模塊安裝在服務(wù)端上;步驟3、第一網(wǎng)絡(luò)通信模塊通過(guò)虛擬通道將所述TWAIN協(xié)議指令發(fā)送至第二網(wǎng)絡(luò)通信模塊;所述虛擬通道,廣義上來(lái)講是指虛擬化協(xié)議客戶(hù)端與虛擬化協(xié)議服務(wù)器組件之間的網(wǎng)絡(luò)通信通道,其底層為網(wǎng)絡(luò)連接層,通過(guò)TCP或者UDP協(xié)議進(jìn)行通訊。虛擬通道是RDP、PCOIP、ICA等虛擬化協(xié)議的通訊基礎(chǔ);步驟4、第二網(wǎng)絡(luò)通信模塊將所述TWAIN協(xié)議指令傳送至一 TWAIN協(xié)議處理模塊;所述TWAIN協(xié)議處理模塊安裝在客戶(hù)端上;步驟5、所述TWAIN協(xié)議處理模塊將接收到的所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令傳送給客戶(hù)端的TWAIN驅(qū)動(dòng)(所述TWAIN驅(qū)動(dòng)即TWAIN源),接著接收TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果,然后將所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果經(jīng)過(guò)第二網(wǎng)絡(luò)通信模塊發(fā)送至第一網(wǎng)絡(luò)通信模塊;所述傳送是通過(guò)調(diào)用客戶(hù)端系統(tǒng)自帶的TWAIN源管理器的DSM_Entr函數(shù)接口傳送給客戶(hù)端的TWAIN驅(qū)動(dòng);所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果即客戶(hù)端上DSM_Entry函數(shù)的返回值和參數(shù)信息;步驟6、第一網(wǎng)絡(luò)通信模塊將接收到的所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果轉(zhuǎn)發(fā)至所述TWAIN協(xié)議截獲模塊,然后再由所述TWAIN協(xié)議截獲模塊將其返回至所述第三方應(yīng)用程序,從而實(shí)現(xiàn)了虛擬桌面中支持TWAIN協(xié)議的第三方應(yīng)用程序在客戶(hù)端的使用。這里所述第三方應(yīng)用程序?yàn)榉潜鞠到y(tǒng)開(kāi)發(fā)的第三方應(yīng)用程序??蛻?hù)端在Windows終端服務(wù)以及虛擬桌面下,所述TWAIN協(xié)議截獲模塊可以通過(guò)以下三種方式中的任意一種或多種截獲第三方應(yīng)用程序的TWAIN指令方式一、所述TWAIN協(xié)議截獲模塊通過(guò)一新開(kāi)發(fā)的源管理器截獲TWAIN協(xié)議指令;所述源管理器替換服務(wù)端系統(tǒng)中自帶的TWAIN源管理器;因?yàn)榉?wù)端系統(tǒng)中自帶的TWAIN源管理器只能操作服務(wù)端系統(tǒng)中的TWAIN驅(qū)動(dòng),無(wú)法操作客戶(hù)端系統(tǒng)中的TWAIN驅(qū)動(dòng),而本發(fā)明開(kāi)發(fā)的源管理器與服務(wù)端系統(tǒng)中自帶的TWAIN源管理器的不同之處在于本發(fā)明開(kāi)發(fā)的源管理器能夠截獲TWAIN協(xié)議指令,并將TWAIN協(xié)議指令通過(guò)虛擬通道傳遞給客戶(hù)端的TWAIN驅(qū)動(dòng)進(jìn)行處理;方式二、所述TWAIN協(xié)議截獲模塊通過(guò)截獲Hook DSM_Entry函數(shù)進(jìn)而獲得TWAIN協(xié)議指令;在TWAIN的協(xié)議定義中,第三方應(yīng)用程序通過(guò)DSM_Entry函數(shù)調(diào)用TWAIN源管理器(即第三方程序在打開(kāi)的過(guò)程中必須有通過(guò)DSM_Entry函數(shù)調(diào)用TWAIN源管理器),因此本發(fā)明通過(guò)TWAIN協(xié)議截獲模塊截獲DSM_Entry函數(shù)的入?yún)?,從而獲得TWAIN協(xié)議指令;方式三、本方式還包括一安裝在服務(wù)端的實(shí)現(xiàn)了 DSM_Entry接口的動(dòng)態(tài)庫(kù)。所述TWAIN協(xié)議截獲模塊通過(guò)截獲Hook LoadLibrary函數(shù)并使其載入所述動(dòng)態(tài)庫(kù),當(dāng)?shù)谌綉?yīng)用程序調(diào)用DSM_Entry接口時(shí),服務(wù)端系統(tǒng)就能夠通過(guò)DSM_Entry函數(shù)入?yún)?,得知第三方?yīng)用程序的TWAIN協(xié)議指令,從而達(dá)到截獲TWAIN指令的目的,進(jìn)而截獲TWAIN協(xié)議指令。 需要說(shuō)明的是,依照TWAIN協(xié)議的規(guī)范,TWAIN源管理以動(dòng)態(tài)庫(kù)的形式存在于系統(tǒng)中。應(yīng)用程序如果想要使用TWAIN驅(qū)動(dòng),必須先載入TWAIN源管理器動(dòng)態(tài)庫(kù),然后調(diào)用TWAIN源管理器提供的DSM_Entry函數(shù)接口操作TWAIN源管理器。DSM_Entry的函數(shù)參數(shù)即是TWAIN協(xié)議指令,而在應(yīng)用程序調(diào)用DSM_Entry函數(shù)時(shí),TWAIN源管理會(huì)操作TWAIN驅(qū)動(dòng),操然后TWAIN源管理器將作結(jié)果以函數(shù)出參以及返回值的方式將結(jié)果反饋給應(yīng)用程序。從應(yīng)用程序的角度來(lái)看應(yīng)用程序打開(kāi)后,載入系統(tǒng)的TWAIN源管理器,然后通過(guò)DSM_Entry函數(shù)接口操作TWAIN源管理器。從TWAIN源管理器的角度=TWAIN源管理向應(yīng)用程序提供DSM_Entry函數(shù)接口,每次應(yīng)用程序調(diào)用此接口時(shí),源管理就根據(jù)函數(shù)操作對(duì)應(yīng)的對(duì)TWAIN驅(qū)動(dòng)進(jìn)行操作,然后將操作的結(jié)果返回,即是函數(shù)的返回值,返回給應(yīng)用程序。請(qǐng)?jiān)賲㈤唸D1,本發(fā)明一種TWAIN協(xié)議的遠(yuǎn)程重定向系統(tǒng),包括客戶(hù)端系統(tǒng),通過(guò)客戶(hù)端系統(tǒng)的遠(yuǎn)程桌面接入虛擬桌面,將服務(wù)端構(gòu)架在虛擬桌面中;服務(wù)端系統(tǒng),通過(guò)虛擬桌面打開(kāi)服務(wù)端系統(tǒng)中支持TWAIN協(xié)議的第三方應(yīng)用程序;所述遠(yuǎn)程重定向系統(tǒng)還包括設(shè)于服務(wù)端的TWAIN協(xié)議截獲模塊和第一網(wǎng)絡(luò)通信模塊、設(shè)于客戶(hù)端的TWAIN協(xié)議處理模塊和第二網(wǎng)絡(luò)通信模塊;所述TWAIN協(xié)議截獲模塊截獲所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令,并將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令發(fā)送至第一網(wǎng)絡(luò)通信模塊;所述第一網(wǎng)絡(luò)通信模塊通過(guò)虛擬通道將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令發(fā)送至第二網(wǎng)絡(luò)通信模塊;所述第二網(wǎng)絡(luò)通信模塊將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令傳送給客戶(hù)端的TWAIN協(xié)議處理模塊;所述TWAIN協(xié)議處理模塊將接收到的所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令傳送給客戶(hù)端的TWAIN驅(qū)動(dòng),接著接收TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果,然后將所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果經(jīng)過(guò)第二網(wǎng)絡(luò)通信模塊發(fā)送至第一網(wǎng)絡(luò)通信模塊;第一網(wǎng)絡(luò)通信模塊將接收到的所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果轉(zhuǎn)發(fā)至所述TWAIN協(xié)議截獲模塊,然后再由所述TWAIN協(xié)議截獲模塊將其返回至所述第三方應(yīng)用程序,從而實(shí)現(xiàn)了虛擬桌面中支持TWAIN協(xié)議的第三方應(yīng)用程序在客戶(hù)端的使用。
這里所述第三方應(yīng)用程序?yàn)榉潜鞠到y(tǒng)開(kāi)發(fā)的第三方應(yīng)用程序??蛻?hù)端在Windows終端服務(wù)以及虛擬桌面下,所述TWAIN協(xié)議截獲模塊可以通過(guò)以下三種方式中的任意一種或多種截獲第三方應(yīng)用程序的TWAIN指令方式一、所述TWAIN協(xié)議截獲模塊通過(guò)一新開(kāi)發(fā)的源管理器截獲TWAIN協(xié)議指令,所述源管理器能夠截獲TWAIN協(xié)議指令,并將TWAIN協(xié)議指令經(jīng)第一網(wǎng)絡(luò)通信模塊、虛擬通道、第二網(wǎng)絡(luò)通信模塊傳遞給客戶(hù)端的TWAIN驅(qū)動(dòng)進(jìn)行處理。方式二、所述TWAIN協(xié)議截獲模塊截獲Hook DSM_Entry函數(shù),抓取DSM_Entry函數(shù)的入?yún)⒓碩WAIN協(xié)議指令,進(jìn)而達(dá)到截獲TWAIN協(xié)議指令的目的。方式三、所述TWAIN協(xié)議截獲模塊通過(guò)Hook LoadLibrary函數(shù),當(dāng)檢測(cè)到第三方應(yīng)用程序載入服務(wù)端系統(tǒng)自帶的TWAIN源管理器動(dòng)態(tài)庫(kù)時(shí),改變LoadLibrary函數(shù)過(guò)程,使 其載入本系統(tǒng)開(kāi)發(fā)的實(shí)現(xiàn)了 DSM_Entry接口的動(dòng)態(tài)庫(kù),當(dāng)?shù)谌綉?yīng)用程序調(diào)用DSM_Entry接口時(shí),服務(wù)端系統(tǒng)就能夠通過(guò)DSM_Entry函數(shù)入?yún)?,得知第三方?yīng)用程序的TWAIN協(xié)議指令,從而達(dá)到截獲TWAIN指令的目的。因此,本發(fā)明實(shí)現(xiàn)虛擬桌面中的第三方應(yīng)用程序能夠使用客戶(hù)端中的TWAIN驅(qū)動(dòng),是通過(guò)改變系統(tǒng)原有的DSM_Entry函數(shù)流程,使其能夠操作客戶(hù)端的TWAIN源,具體為I.替換系統(tǒng)TWAIN源管理器;2.直接截獲應(yīng)用程序的DSM_Entry的函數(shù)調(diào);3.截獲第三方應(yīng)用程序載入TWAIN源管理器的過(guò)程,改變其載入的源管理器,通過(guò)上述三種方式中的任意一種或多種方式截獲到系統(tǒng)的TWAIN指令,即DSM_Entry函數(shù)的參數(shù),然后將指令發(fā)送給客戶(hù)端的TWAIN驅(qū)動(dòng),從而達(dá)到應(yīng)用程序操作客戶(hù)端TWAIN驅(qū)動(dòng)的效果。雖然以上描述了本發(fā)明的具體實(shí)施方式
,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實(shí)施例只是說(shuō)明性的,而不是用于對(duì)本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。
權(quán)利要求
1.一種TWAIN協(xié)議的遠(yuǎn)程重定向方法,其特征在于包括如下步驟 步驟I、客戶(hù)端本機(jī)系統(tǒng)通過(guò)遠(yuǎn)程桌面接入虛擬桌面,將服務(wù)端構(gòu)架在虛擬桌面中,用戶(hù)在虛擬桌面中打開(kāi)支持TWAIN協(xié)議的第三方應(yīng)用程序; 步驟2、服務(wù)端的TWAIN協(xié)議截獲模塊截獲所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令,并將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令發(fā)送至服務(wù)端的第一網(wǎng)絡(luò)通信模塊;步驟3、第一網(wǎng)絡(luò)通信模塊通過(guò)虛擬通道將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令發(fā)送至客戶(hù)端的第二網(wǎng)絡(luò)通信模塊; 步驟4、第二網(wǎng)絡(luò)通信模塊將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令傳送給客戶(hù)端的TWAIN協(xié)議處理模塊; 步驟5、所述TWAIN協(xié)議處理模塊將接收到的所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令傳送給客戶(hù)端的TWAIN驅(qū)動(dòng),接著接收TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果,然后將所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果經(jīng)過(guò)第二網(wǎng)絡(luò)通信模塊發(fā)送至第一網(wǎng)絡(luò)通信模塊; 步驟6、第一網(wǎng)絡(luò)通信模塊將接收到的所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果轉(zhuǎn)發(fā)至所述TWAIN協(xié)議截獲模塊,然后再由所述TWAIN協(xié)議截獲模塊將其返回至所述第三方應(yīng)用程序,從而實(shí)現(xiàn)了虛擬桌面中支持TWAIN協(xié)議的第三方應(yīng)用程序在客戶(hù)端的使用。
2.根據(jù)權(quán)利要求I所述的TWAIN協(xié)議的遠(yuǎn)程重定向方法,其特征在于所述TWAIN協(xié)議截獲模塊通過(guò)一新開(kāi)發(fā)的源管理器截獲TWAIN協(xié)議指令,所述源管理器能夠截獲TWAIN協(xié)議指令,并將TWAIN協(xié)議指令經(jīng)第一網(wǎng)絡(luò)通信模塊、虛擬通道傳遞給客戶(hù)端的TWAIN驅(qū)動(dòng)進(jìn)行處理。
3.根據(jù)權(quán)利要求I或2所述的TWAIN協(xié)議的遠(yuǎn)程重定向方法,其特征在于所述TWAIN協(xié)議截獲模塊還截獲Hook DSM_Entry函數(shù),抓取DSM_Entry函數(shù)的入?yún)?,即TWAIN協(xié)議指令,進(jìn)而達(dá)到截獲TWAIN協(xié)議指令的目的。
4.根據(jù)權(quán)利要求I至3任意一項(xiàng)所述的TWAIN協(xié)議的遠(yuǎn)程重定向方法,其特征在于所述TWAIN協(xié)議截獲模塊還通過(guò)Hook LoadLibrary函數(shù),當(dāng)檢測(cè)到第三方應(yīng)用程序載入服務(wù)端系統(tǒng)自帶的TWAIN源管理器動(dòng)態(tài)庫(kù)時(shí),改變LoadLibrary函數(shù)過(guò)程,使其載入本系統(tǒng)開(kāi)發(fā)的實(shí)現(xiàn)了 DSM_Entry接口的動(dòng)態(tài)庫(kù),當(dāng)?shù)谌綉?yīng)用程序調(diào)用DSM_Entry接口時(shí),服務(wù)端系統(tǒng)就能夠通過(guò)DSM_Entry函數(shù)入?yún)ⅲ弥谌綉?yīng)用程序的TWAIN協(xié)議指令,從而達(dá)到截獲TWAIN指令的目的。
5.—種TWAIN協(xié)議的遠(yuǎn)程重定向系統(tǒng),包括 客戶(hù)端系統(tǒng),通過(guò)客戶(hù)端系統(tǒng)的遠(yuǎn)程桌面接入虛擬桌面,將服務(wù)端構(gòu)架在虛擬桌面中; 服務(wù)端系統(tǒng),通過(guò)虛擬桌面打開(kāi)服務(wù)端系統(tǒng)中支持TWAIN協(xié)議的第三方應(yīng)用程序;其特征在于所述遠(yuǎn)程重定向系統(tǒng)還包括設(shè)于服務(wù)端的TWAIN協(xié)議截獲模塊和第一網(wǎng)絡(luò)通信模塊、設(shè)于客戶(hù)端的TWAIN協(xié)議處理模塊和第二網(wǎng)絡(luò)通信模塊; 所述TWAIN協(xié)議截獲模塊截獲所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令,并將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令發(fā)送至第一網(wǎng)絡(luò)通信模塊; 所述第一網(wǎng)絡(luò)通信模塊通過(guò)虛擬通道將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令發(fā)送至第二網(wǎng)絡(luò)通信模塊; 所述第二網(wǎng)絡(luò)通信模塊將所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令傳送給客戶(hù)端的TWAIN協(xié)議處理模塊; 所述TWAIN協(xié)議處理模塊將接收到的所述第三方應(yīng)用程序調(diào)用的TWAIN協(xié)議指令傳送給客戶(hù)端的TWAIN驅(qū)動(dòng),接著接收TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果,然后將所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果經(jīng)過(guò)第二網(wǎng)絡(luò)通信模塊發(fā)送至第一網(wǎng)絡(luò)通信模塊;第一網(wǎng)絡(luò)通信模塊將接收到的所述TWAIN驅(qū)動(dòng)處理TWAIN指令的結(jié)果轉(zhuǎn)發(fā)至所述TWAIN協(xié)議截獲模塊,然后再由所述TWAIN協(xié)議截獲模塊將其返回至所述第三方應(yīng)用程序,從而實(shí)現(xiàn)了虛擬桌面中支持TWAIN協(xié)議的第三方應(yīng)用程序在客戶(hù)端的使用。
6.根據(jù)權(quán)利要求5所述的TWAIN協(xié)議的遠(yuǎn)程重定向系統(tǒng),其特征在于所述TWAIN協(xié)議截獲模塊通過(guò)一新開(kāi)發(fā)的源管理器截獲TWAIN協(xié)議指令,所述源管理器能夠截獲TWAIN協(xié)議指令,并將TWAIN協(xié)議指令經(jīng)第一網(wǎng)絡(luò)通信模塊、虛擬通道、第二網(wǎng)絡(luò)通信模塊傳遞給客戶(hù)端的TWAIN驅(qū)動(dòng)進(jìn)行處理。
7.根據(jù)權(quán)利要求5或6所述的TWAIN協(xié)議的遠(yuǎn)程重定向系統(tǒng),其特征在于所述TWAIN協(xié)議截獲模塊還截獲Hook DSM_Entry函數(shù),抓取DSM_Entry函數(shù)的入?yún)⒓碩WAIN協(xié)議指令,進(jìn)而達(dá)到截獲TWAIN協(xié)議指令的目的。
8.根據(jù)權(quán)利要求5至7任意一項(xiàng)所述的TWAIN協(xié)議的遠(yuǎn)程重定向系統(tǒng),其特征在于所述TWAIN協(xié)議截獲模塊還通過(guò)Hook LoadLibrary函數(shù),當(dāng)檢測(cè)到第三方應(yīng)用程序載入服務(wù)端系統(tǒng)自帶的TWAIN源管理器動(dòng)態(tài)庫(kù)時(shí),改變LoadLibrary函數(shù)過(guò)程,使其載入本系統(tǒng)開(kāi)發(fā)的實(shí)現(xiàn)了 DSM_Entry接口的動(dòng)態(tài)庫(kù),當(dāng)?shù)谌綉?yīng)用程序調(diào)用DSM_Entry接口時(shí),服務(wù)端系統(tǒng)就能夠通過(guò)DSM_Entry函數(shù)入?yún)ⅲ弥谌綉?yīng)用程序的TWAIN協(xié)議指令,從而達(dá)到截獲TWAIN指令的目的。
全文摘要
本發(fā)明提供一種TWAIN協(xié)議的遠(yuǎn)程重定向方法,客戶(hù)端在虛擬桌面中打開(kāi)支持TWAIN協(xié)議的第三方應(yīng)用程序,服務(wù)端截獲第三方應(yīng)用程序中調(diào)用的TWAIN協(xié)議指令請(qǐng)求,并將其發(fā)送至客戶(hù)端,客戶(hù)端把截獲的TWAIN協(xié)議指令轉(zhuǎn)化為對(duì)本地TWAIN驅(qū)動(dòng)的操作請(qǐng)求,然后將TWAIN驅(qū)動(dòng)返回的信息返回至服務(wù)端,從而實(shí)現(xiàn)了虛擬桌面中支持TWAIN協(xié)議的第三方應(yīng)用程序直接操作客戶(hù)端中的TWAIN源。
文檔編號(hào)H04L29/08GK102752281SQ20121017068
公開(kāi)日2012年10月24日 申請(qǐng)日期2012年5月28日 優(yōu)先權(quán)日2012年5月28日
發(fā)明者張輝 申請(qǐng)人:福建升騰資訊有限公司