吳國年
(河南工業(yè)大學,河南 鄭州 450001)
圖書館的公共檢索機,是用來檢索本館的館藏中外文書刊的公共目錄,查詢讀者借閱情況、借閱權(quán)限等,免費使用,禁止做其它用途。由于讀者在使用過程中可能會移動、刪除操作系統(tǒng)或應(yīng)用軟件中某些關(guān)鍵的程序文件,也可能修改系統(tǒng)和軟件中某些參數(shù)配置而造成檢索機系統(tǒng)的癱瘓,還有的讀者可能會在檢索機上進行與此不相關(guān)的操作而影響檢索機器的使用[1],因此對檢索機的安全保護就顯得非常重要。常用的檢索機管理維護方法主要有以下兩種:其一,修改注冊表。通過超級兔子等軟件工具或者組策略方式對windows系統(tǒng)和IE瀏覽器進行設(shè)置、修改,防止用戶上網(wǎng)、破壞軟件系統(tǒng)等,此法設(shè)置復(fù)雜,又易遭到用戶破解。其二,交換機限制。通過交換機劃分子網(wǎng),采用物理地址和IP地址綁定的方式限制查詢機只能訪問OPAC網(wǎng)站。此法需要網(wǎng)絡(luò)硬件支持,因無法防止用戶隨意更改系統(tǒng)配置,所以還必須安裝硬盤保護卡[2]。
我們可以借鑒觸摸屏管理軟件的方式,定制一個專用瀏覽器。WebBrowser控件是微軟提供的瀏覽器控件,在VS 2005中,WebBrowser控件比先前的版本有更大的進步,按照要求,利用該控件可以做一個符合我們要求的專業(yè)瀏覽器,屏蔽鍵盤功能鍵可以通過底層的鉤子函數(shù)實現(xiàn),其他功能則可以通過修改注冊表實現(xiàn)。下面從功能、實現(xiàn)方面來介紹檢索機管理軟件的開發(fā)流程。
為了能使查詢軟件能限制用戶只能上圖書館OPAC查詢系統(tǒng),而不能對操作系統(tǒng)進行設(shè)置破壞,需要達到以下功能。(1)該軟件設(shè)置為啟動界面后,充滿屏幕,始終置于最前端,不能最大化、最小化,移動,也不能被關(guān)閉。(2)屏蔽鍵盤功能鍵F1-F12,Tab,左右Win鍵等,但是保留輸入法切換鍵。(3)屏蔽Ctrl+Alt+Delete對應(yīng)的任務(wù)管理器、注銷計算機,注銷等等。(4)屏蔽鼠標右鍵。(5)按F8安全模式登陸后,仍然以該軟件作為登陸界面。(6)設(shè)置只能瀏覽OPAC查詢主頁。
新建一個form窗體,該form要去掉菜單欄,這樣就沒有了最大化、最小化和關(guān)閉按鈕,設(shè)置form1的屬性,代碼如下:
Me.topmost=true‘始終處于屏幕最頂端System.Windows.Forms.FormBorderStyle.None‘無菜單欄System.Windows.Forms.FormWindowState.Maximized‘最大化充滿屏幕
在form1窗體中添加webbrowser控件,該控件相當于一個瀏覽器,再添加toolstrip控件到form1中,然后添加一系列前進、后退、主頁、刷新等功能按鈕,完善瀏覽器的功能。相關(guān)代碼如下:
WebBrowser1.IsWebBrowserContextMenuEnabled= False‘屏蔽鼠標右鍵
WebBrowser1.ScriptErrorsSuppressed=True‘忽略腳本錯誤
鉤子(Hook)是Windows消息處理機制的一個平臺,用來監(jiān)控消息流并且處理系統(tǒng)中尚未到達目的窗口的某一類型消息過程的機制。鉤子實際上是一個處理消息的程序段可以監(jiān)視系統(tǒng)或進程中的各種事件消息,截獲發(fā)往目標窗口的消息并進行處理。這樣,我們就可以在系統(tǒng)中安裝自定義的鉤子,監(jiān)視系統(tǒng)中特定事件的發(fā)生,完成特定的功能,比如截獲鍵盤、鼠標的輸入等[3]。
通過調(diào)用底層的鍵盤鉤子函數(shù)可以屏蔽win鍵(winxp,win2K等基于NT的系統(tǒng)才可以),可以調(diào)用盧培培所寫的底層鍵盤鉤子的動態(tài)鏈接庫文件maskey.dll,在vb6.0中調(diào)用maskey.dll生成maskey.exe,然后在form啟動時做為進程調(diào)用maskey.exe。
2.4.1 禁用Ctrl+Alt+Delete對應(yīng)的各項功能
鍵盤鉤子無法禁用Ctrl+Alt+Delete組合鍵,此時只要在注冊表里禁用該組合鍵對應(yīng)的功能項即可,比如任務(wù)管理器、注銷、關(guān)機、更改密碼等。打開注冊表項,然后設(shè)置相關(guān)項的值,代碼如下:
Dim hkcu As RegistryKey=Registry.CurrentUser
Dim explorer1 As RegistryKey=Policies1.OpenSubKey ("explorer",True)
‘打開注冊表對應(yīng)表項 system1.SetValue(" DisableTaskMgr",1)’禁止任務(wù)管理器
system1.SetValue("DisableLockWorkstation",1)'禁止 鎖 定 計 算 機 explorer1.SetValue("nologoff",1) '禁止注銷
system1.SetValue("DisableChangePassword",1)'禁止更改密碼
2.4.2 設(shè)置為開機啟動
為了開機啟動該程序,需要在注冊表里將shell項的Explorer.exe用該程序替換,這樣無論是正常登陸還是進入安全模式,都以該程序做為shell,以下是實現(xiàn)該功能的代碼。
Dim limipath As String=System.Environment.CurrentDirectory
limipath=limipath&"limibrowser.exe"
Winlogon.SetValue ("shell",limipath)‘設(shè) 置limibrowser.exe為shell
如果OPAC頁面中有其他網(wǎng)站的超級鏈接,點擊就可以跳轉(zhuǎn)到其他網(wǎng)頁,雖然可以通過刪除超級鏈接達到目的,但是用編程判斷主頁的合法性,會更方便。
以下代碼是在主頁跳轉(zhuǎn)時,讀取默認主頁的域名地址的長度,當前url取該長度的字符串與默認主頁匹配,若不匹配,則返回默認主頁。
Private Sub WebBrowser1_Navigated()Handles WebBrowser1.Navigated
If onlyhomepage=True Then
Dim nowurl As String=WebBrowser1.Url.ToString ()
Dim Urlhomelen As Integer=Len(Urlhome)‘獲取默認主頁長度
If nowurl.Substring(0,Urlhomelen)<>Urlhome Then
以上部分是該軟件主體功能的實現(xiàn),除此之外,還有修改密碼、更改主頁,設(shè)置關(guān)機鍵不可用,啟用全局快捷鍵等功能,因篇幅所限,不在此一一交代。
軟件安裝
軟件需要Net Framwork 2.0支持,可在winxp、win2k和win2003系統(tǒng)運行;刪除帶瀏覽器上網(wǎng)的任何輸入法,比如搜狗輸入法。最好只保留最原始的輸入法,比如微軟拼音輸入法。安裝運行后點“管理”按鈕,禁用所有注冊表項,如圖1所示,設(shè)置好查詢主頁后,重新啟動電腦,開機后運行的效果如圖2所示,此時用戶只能檢索書目而無法破壞計算機系統(tǒng),也不能通過檢索機上互聯(lián)網(wǎng)。
圖1 注冊表配置
圖2 運行界面
圖書館OPAC檢索機的安全保護是一件既普通但又很重要的工作,要使數(shù)量很有限的檢索機得到充分的利用,對其進行必要的安全保護是很有必要的,該軟件從開發(fā)到使用已經(jīng)有一年多的時間,在實際應(yīng)用中取得了預(yù)期的效果,很好的解決了檢索機管理的問題(筆者已將該軟件上傳到華軍軟件園,用戶可以下載免費試用,下載地址是http://www.newhua.com/soft/103571.htm)。
[1]孫明杰,陳剛.圖書館無人管理查詢機的實現(xiàn)[J].科技情報開發(fā)與經(jīng)濟,2007(30):52.
[2]肖愛斌,鞏林立,張愛民.圖書館WebPAC查詢機智能化管理的實現(xiàn)[J].蘭州工業(yè)高等專科學校學報,2006(2):28-30.
[3]劉造新.基于鍵盤鉤子技術(shù)屏蔽任意鍵的實現(xiàn)[J].計算機與現(xiàn)代化,2005(10):113-115.