• 沒有找到結果。

實作原理與方法

在文檔中 印表工作佇列管理系統 (頁 27-0)

第三章 系統架構與實作

3.2 實作原理與方法

一台電腦上所連接的每一抬印表機都有一個專屬的 print queue 來儲存 print jobs,所謂的 print jobs 就是使用者所要列 印的文件,print queue 則是用來儲存這些 jobs 的序列。其實 windows 本身就為使用者提供了一套簡易的 printer manager,我們 所要做的則是一套更適合用來管理網路印表機的軟體。在這邊我們是 以逢甲大學的電腦實習室為藍本,來構思這一套軟體,預計達成目標 如 1-2 所描述。

經過討論,我們發先要達成目標的重點有兩個。第一點,所有 新進的 print job 必須先暫停列印;第二點,管理員要有更改 print jobs 狀態的權力。首先說明第一點,print job 的狀態有三種,分 別是 printing(列印中)、pause(暫停)、ok(就緒),一般情況下,

print jobs 進入 print queue 時的預設狀態是 printing,而 print queue 本身是屬於 FIFO(First In First Out 先進先出)系統,所 以印表機會按照收到 jobs 順序,將 jobs 一一印出,如圖 3-3

圖 3-3 架構說明圖(一)

但這並不是我們所期望的狀況,所以我們加入了一個時間觸動物件,

這個物件會以很短的時間間隔,不斷的去將 print queue 裡的 jobs 狀態修改為 pause,使 job 不會立即印出,如圖 3-4

圖 3-4 架構說明圖(二)

第二點,為了方便管理,管理員必需具備權力修改 jobs 狀態的 能力,另外還有考量到制度修改的便利性(如漲價,特殊列印方式加 價等)我們認為提供管理員:開始、暫停、刪除及修改價格 四項功 能。

開始:使選定的 jobs 恢復可列印狀態 暫停:使選定的 jobs 進入停止狀態 刪除:將選定的 jobs 刪除

修改價格:可更改每列印一頁的單價 以上就是我們程式的整個架構。

3.3 使用函式解說

IADsContainer:

IADsContainer 介面可以使 ADSI 容器物件去產生、刪除和管理其它 Active Directory 物件。容器物件被使用來組織 Active Directory 的階層式架構和直接來代表在檔案系統裡目錄樹的階層式本性。

方法 說明 get_Count 計算 Active Directory objects 數量.

get__NewEnum 取得 enumerator object 介面.

Get/put_Filter 取得/設定階級計算的 filter.

Get/put_Hints 取得/設定讀取屬性.

GetObject 取得 named object 介面.

Create 產生 specified object.

Delete 刪除 specified object.

CopyHere 複製 sever 內部 specified object.

MoveHere 移動 sever 內部 specified object.

IADsPrintJob:

IADsPrintJob 介面可以使 COM(component object model)物件在 Active Directory 管理一般關於印表工作訊息。用

IADsPrintJobOperations 透過網路來管理這個印表工作本身。印表 工作的聚集被任何一個工作佇列管理是可以用

IADsPrintQueueOperatio::PrintJobs 操作。

方法 說明 get_HostPrintQueue 抓取 print queue

get_User 取得 print job 的 user name.

get_UserPath ADsPath name to user object for user submitting the print job.

get_TimeSubmitted Time job submitted to the print queue.

get_TotalPages 取得 print job 的總頁數.

get_Size 取得 print job 的大小.

get/put_Description 取得/設定 print job 說明.

get/put_Priority 取得/設定 print job 的優先權.

get/put_StartTime 取得/設定 print job 的起始時間.

get/put_UntilTime 取得/設定 print job 的完成時間.

get/put_Notify 通知 job 已完成.

get/put_NotifyPath 通知使用者 job 已完成.

IADsPrintQueue:

IADsPrintQueue 介面可以使在 Active Directory 的 COM 物件去管理 網路上印表工作佇列上的資訊。為了列出或修改佇列裡的工作,要用 IADsPrintQueueOperations::PrintJobs擷取在ADSI PrintJob Objects 聚集的介面。

方法 說明 get/put_PrinterPath 取得/設定共享印表機的路徑.

get/put_Model 取得/設定 print queue 的裝置名稱

get/put_Datatype 取得/設定 print queue 處理的資料型 態.

get/put_PrintProcessor 取得/設定 Print processor 與 print queue 連結.

get/put_Description 取得/設定 print queue 說明.

get/put_Location Administrator's description of print queue location.

get/put_StartTime 取得/設定 print queue 起始時間.

get/put_UntilTime 取得/設定 print queue 結束時間.

get/put_DefaultJobPriority 取得/設定放棄 print job 優先權.

get/put_Priority 取得/設定連接裝置的優先權.

get/put_BannerPage 取得/設定標示頁來區分 jobs.

get/put_PrintDevices 取得/設定列印裝置名稱.

get/put_NetAddresses 取得/設定來源位置.

IADsPrintQueueOperations:

IADsPrintQueueOperations 介面可使 Active Directory 裡的 COM 物 件來支援透過網路控制印表工作的屬性和方法。

方法 說明

get_Status 取得 print queue service 狀態.

PrintJobs 恢復介面觀點到指定的物件.

Pause 暫停 print queue 處理程序.

Resume 恢復 print queue 處理程序.

Purge 刪除 print queue 內全部 jobs.

IADsPrintJobOperations:

IADsPrintJobOperations 介面可使 Active Directory 裡的物件支援 經由網路來控制印表工作的方法。

方法 說明

get_Status 取得 print job 的狀態.

get_TimeElapsed 計算已花費的時間.

get_PagesPrinted 計算頁數.

get/put_Position 取得/設定 print job 在 queue 中的序號.

Pause 暫停處理 print job.

Resume 繼續處理 print job.

第四章 心得與討論

2000 與 windows98 的架構差滿多。在開發應用程式時,可要特別注 意,這次的經驗讓我實際體驗到作業平台與應用程式之間的相關性。

站請教別人,對方的回答,會讓我們更清楚下一步如何解決問題,去 那裡查相關資料。這時候,再次體驗到,要在資訊界生存,英文真得 要下功夫,否則很難掌握到最新的技術。

而這個專題能順利完成,除了要感謝李維斌老師的指導,最重要 的就是另一位組員勝銘的全力配合,碰到問題時一起討論研究,讓我 們的工作效率加倍,也才能有今天的成果。

4.2 未來展望

隨著科技不斷的進步,人們也不斷地在追求更方便的生活,生活 E 化已經成為全球一致的目標了,當然,我們學校也不例外。這幾年 來學校不斷的推行著 E 化的政策,象徵著資訊與科技的電腦實習教室 必然是改革的首要目標。不只是電腦設備需要更新,一些老舊的制度 方法也應該要跟進,朝著更方便,更節省人力等方向努力。我們的這 個專題可以說是一個開端,將來若能在搭配上學生 IC 卡的應用,還 可再省下人力收費等步驟,雖然這只是一個小細節,但也使整體更向 目標邁進了一步。

附錄 參考資料

參考書籍

1. Windows 2000 網路實用指南,碁峰資訊,2000 作者:戴有煒 2. Windows 2000 Server 企業網路建構實務-Active Directory 篇,博碩

文化,2000 作者:顏逸品

3. Visual Basic 6.0 實戰講座,旗標,1999 作者:王國榮

4. Visual Basic 6.0 技術應用手冊,文魁資訊,1999 作者:王成春、

蕭雅云

參考網站

http://msdn.microsoft.com/

http://forum.vclxx.org/

在文檔中 印表工作佇列管理系統 (頁 27-0)

相關文件