趙慶明,阮菊紅
(成都理工大學(xué)圖書館,四川 成都 610000)
伴隨著智能手機和筆記本電腦的普及,圖書館基本上不再提供的用于閱覽電子資源的計算機。目錄查詢機是圖書館為讀者提供圖書檢索的設(shè)備之一,而單一功能的目錄查詢機使用效率并不高,同時仍有部分讀者希望圖書館提供免費的計算機以供閱覽電子資源。如何解決這一問題,我們對此做了研究,也取得了良好的成果。
成都理工大學(xué)新圖書館建成,不但館舍面積有了大幅擴大,而且在軟硬件設(shè)施方面有了大幅提升。目錄查詢機由原來二十余臺,提升到近七十余臺,分散于圖書館的書庫及閱覽區(qū),極大地方便了讀者書目檢索需求。如此多的目錄查詢機,僅用于書目檢索,功能太過單一,大部分時間出于閑置狀態(tài),利用效率并不高。同時仍有小部分讀者希望圖書館提供免費計算機以供閱覽電子資源。如果能將這些書目查詢機同時作為免費電子閱覽用機,進一步發(fā)揮這些設(shè)備的作用已以滿足部分讀者的需求。
原來的目錄查詢機僅用于書目檢索,只需訪問圖書館內(nèi)網(wǎng)OPAC,無需訪問互聯(lián)網(wǎng),人為設(shè)置了不少的限制。要讓這些計算機確保提供基本的OPAC服務(wù),同時允許讀者訪問互聯(lián)網(wǎng)資源,則需要解除這些限制。最主要的問題在于,讀者離開計算機之后未關(guān)閉的敏感信息會為圖書館帶來不良的影響,也會干擾其他讀者的使用。而如果關(guān)閉了瀏覽器的頁面,同樣會讓其他新讀者不知所措。另外,計算機完全開放權(quán)限,容易被讀者安裝非法軟件,或?qū)ο到y(tǒng)帶來有意無意的破壞。這些問題需要一一解決。
對于防止計算機操作系統(tǒng)的被無意破壞,軟件版的和硬件版的都可滿足需求,讀者對計算機系統(tǒng)所做的任何修改,在重新啟動計算機后可全部還原。將瀏覽器主頁設(shè)置為OPAC頁面,每次打開瀏覽器將呈現(xiàn)為OPAC界面即可。通過監(jiān)控鍵盤鼠標(biāo)“空閑時間”來判斷讀者是否離開計算機,判斷讀者離開計算機之后,只需關(guān)閉瀏覽器。當(dāng)計算機檢測到瀏覽器不在運行中,計算機自動打開瀏覽器即可。如此這般,瀏覽器頁面保持常開狀態(tài),且頁面保持為OPAC書目查詢界面。
對于瀏覽器監(jiān)控、讀者離開的判斷相關(guān)軟件,我們編寫了兩個小軟件。IEGuard是一個系統(tǒng)服務(wù)(Windows Services),無運行界面,以最高權(quán)限在Windows后臺運行,在檢測到瀏覽器未打開時,自動打開瀏覽器。KMGuard是一個基于WinForm的應(yīng)用程序,監(jiān)視當(dāng)前讀者的鍵盤鼠標(biāo)的操作,以程序圖標(biāo)(Tray Icon)的最小化運行,超時未操作,則關(guān)閉瀏覽器。兩個軟件相互配合完成瀏覽器的監(jiān)控,IEGuard確保瀏覽器運行,由KMGuard檢測用戶行為。
在C#編程語言中,命名空間“System.Diagnostics”中的“Process”中的相關(guān)實現(xiàn)可以完成當(dāng)前系統(tǒng)中運行的程序的進程管理,包括啟動、殺死進程?!癝ystem.Timers”中的Timer類中相關(guān)實現(xiàn)可以完成定時器相關(guān)操作。對于監(jiān)控全局鼠標(biāo)鍵盤,則需要調(diào)用Windows API來完成,包括安裝全局鉤子,回調(diào)函數(shù),處理函數(shù)等幾個方面。隨后,將IEGuard以服務(wù)的方式安裝至系統(tǒng)。將KMGuard加入Windows開啟啟動項中即可。核心代碼片段如下:
[DllImport(“user32.dll”)]
static extern void keybd_event(byte key,byte scan,int flags,int extraInfo);
mouseHook.MouseMove += new MouseEventHandler(mouseHook_MouseMove);
keyboardHook.KeyDown += new KeyEventHandler(keyboardHook_KeyDown);
mouseHook.Start();
keyboardHook.Start();
通過合理的網(wǎng)絡(luò)改造和計算機配置,以及通過C#編程語言定制化開發(fā),對目錄查詢機的進行特定的控制,在滿足其主要功能的情況下,讓其更有效地發(fā)揮了作為免費電子閱覽用機的作用。
[1] VB.NET中Timer控件的應(yīng)用研究[J].鄢穎.企業(yè)技術(shù)開發(fā).2016(08)
[2] 基于.NET用C#實現(xiàn)鉤子的方法研究[J].陳樂,劉更,王海偉.科學(xué)技術(shù)與工程.2006(13)
[3] C#可捕獲幾乎所有鍵盤鼠標(biāo)事件的鉤子類[EB/OL].http://www.jb51.net/article/86260.htm,2016.6.9