999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

在線考試系統(tǒng)中USB端口的監(jiān)控與管理

2009-04-29 00:00:00劉黎明張曉民
電腦知識與技術 2009年27期

摘要:隨著工業(yè)技術的成熟,USB設備特別是U盤越來越廉價,這給在線考試系統(tǒng)帶來了新的挑戰(zhàn)。這就需要在考試系統(tǒng)中對USB端口進行有效的管理,實現(xiàn)考試過程的便利性和安全性,也是公平性的一個體驗。該文通過對Windows底層設備管理的分析,設計了一種基于Windows底層API的USB端口管理方法,并通過Delphi編程語言實現(xiàn)。實驗表明,該方法在考試過程中能有效地監(jiān)控和管理USB端口,從而保證考試的公正性和權威性。

關鍵詞:USB端口;監(jiān)控;在線考試;Windows API;安全性

中圖分類號:TP319 文獻標識碼:A 文章編號:1009-3044(2009)27-7822-03

Monitoring and Management of the USB Ports in the Online Examination System

LIU Li-ming, ZHANG Xiao-min

(School of Software, Nanyang Institute of Technology, Nanyang 473004, China)

Abstract: With the development of industrial technology, the cost of USB device, especially U-disk, become more and more cut-price. In this case, it will bring a new challenge to online examination systems. It's necessary to monitor and manage the USB ports in online examination system more effectively in order to the convenience and security of the process of examination. Moreover, it's also an experience of fairness in examinaitons. In this paper, by analysing the mechanism of Windows device management, A USB port monitoring and managing method based on the Windows APIs has been designed and implemented by the Delphi programming-language. Our practice indicates that this method is so effective on the USB port's monitoring and management in the process of examination that the fairness and authority of examination can be ensured.

Key words: USB ports; monitoring; online examination system; windows API; system security

隨著計算機技術的不斷發(fā)展和應用的不斷普及,越來越多的高校開始采用在線考試系統(tǒng)。和傳統(tǒng)紙質考試方法相比,其優(yōu)勢主要表現(xiàn)通過題庫的建立,增強了數(shù)據(jù)的共享能力,減少了教師命題的工作量,節(jié)約了成本,從而,有效地提高了工作效率。更為重要的是,該方式不僅可以考查學生的基礎知識掌握,而且可以有效考核學生的實際動手能力,特別是計算機類專業(yè)課程。考生答題結果多采用文件形式存放,在考試過程中,有些學生就會通過U盤來傳遞試題的結果。由于這種行為本身的隱蔽性,監(jiān)考教師就需要付出更多的勞動和艱辛,這種付出極大地降低了系統(tǒng)的便捷性。這種不良行為一方面反映了系統(tǒng)本身存在不足和漏洞,另一方面對于考試所必需的嚴肅性和公平性也產生了極壞的影響。鑒于此,通過對Windows環(huán)境下設備管理機制的分析研究,從底層起,構建一種USB端口的監(jiān)控與管理子系統(tǒng),并且利用高效的Delphi編程語言在Windows環(huán)境實現(xiàn),可以無縫集成到在線考試系統(tǒng)中,很好地解決了考試過程中的USB設備的監(jiān)控和管理問題。

1 Windows設備管理API

在Windows 2000/XP環(huán)境下,系統(tǒng)為開發(fā)人員提供了SetupAPI組件,利用該組件中的函數(shù)以及DDK中CM_XX函數(shù)就可以對硬件設備進行枚舉、狀態(tài)查詢和控制。利用這些底層設備函數(shù)就能完成對當前環(huán)境中硬件設備的管理,包括對硬件驅動的升級、硬件設備的安裝、卸載以及停用等功能。這些功能包括SetupAPI模塊的安裝與卸載、設備安裝以及配備管理等三類。和普通Dll不同的是,在使用該組件中函數(shù)之前,首先需要安裝該模塊,并且該模塊只能安裝一次,然后才能正常使用。并且在使用完畢后,需要及時卸載該模塊,以釋放其所占用的資源。

在SetupAPI組件中,主要的函數(shù)聲明如下:

1) 枚舉當前系統(tǒng)設備函數(shù)

function SetupDiEnumDeviceInfo(DeviceInfoSet: HDEVINFO;

MemberIndex: DWORD; var DeviceInfoData: TSPDevInfoData): LongBool; stdcall;

// 參數(shù):DeviceInfoSet:設備集;MemberIndex:設備編號;DeviceInfoData:設備信息結構體

2) 獲取設備實例狀態(tài)函數(shù)

function CM_Get_DevNode_Status(pulStatus: PULong; pulProblemNumber: PULong;

dnDevInst: DWord; ulFlags: ULong): DWord; stdcall;

// 參數(shù):pulStatus:狀態(tài)標志;pulProblemNumber:問題設備信息;dnDevInst:設備句柄;ulFlags:未使用

3) 設置設備類型的安裝參數(shù)

function SetupDiSetClassInstallParams(DeviceInfoSet: HDEVINFO;

DeviceInfoData: PSPDevInfoData; ClassInstallParams: PSPClassInstallHeader;

ClassInstallParamsSize: DWORD): LongBool; stdcall;

// 參數(shù):DeviceInfoSet:設備信息集句柄;DeviceInfoData:設備類數(shù)據(jù)結構體;ClassInstallParams:設備安裝信息緩沖區(qū);ClassInstallParamsSize:安裝參數(shù)緩沖區(qū)的大小。

4) 設置設備類型的安裝參數(shù)

function SetupDiCallClassInstaller(InstallFunction: DI_FUNCTION;

DeviceInfoSet: HDEVINFO; DeviceInfoData: PSPDevInfoData): LongBool; stdcall;

// 參數(shù):InstallFunction:設備安裝函數(shù)代碼;DeviceInfoSet:設備信息集句柄;DeviceInfoData:設備類數(shù)據(jù)結構體

2 USB端口監(jiān)控

在線考試系統(tǒng)首要的任務是對USB端口進行有效地監(jiān)控,監(jiān)控可以通過Windows API消息WM_DEVICECHANGE的攔截來實現(xiàn)。

在Delphi開發(fā)環(huán)境中,需要增加一個對該消息響應的自定義函數(shù),其聲明如下:

procedure WMDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE;

在下面的演示代碼中,只是給出考生一個警告信息,在實際應用中,可以加入實際代碼,如將該考生信息存入考場記錄文件中,以備考試結束后查閱。函數(shù)代碼如下:

procedure TfrmEjectDev.WMDeviceChange(var Msg: TMessage);

const

DBT_DEVNODES_CHANGED = $0007;

begin

case Msg.wParam of

DBT_DEVNODES_CHANGED:

begin

ShowMessage('在線考試系統(tǒng)發(fā)現(xiàn)考生正在使用U盤!');

end;

end;

end;

3 USB端口的管理

在考試過程中,為了進一步提高安全性,在考試系統(tǒng)啟動時,對USB端口進行有效屏蔽,在退出系統(tǒng)時,恢復USB端口狀態(tài)。這就需要對USB端口進行動態(tài)管理,其管理流程如圖1所示。各模塊的算法描述如下:

1) SetUpAPI組件的安裝與初始化過程

// 加載和初始化模塊

function LoadSetupApi: Boolean;

begin

Result := True;// 設置加載成功標志

Inc(SetupApiLoadCount);// 累記加載次數(shù)

if SetupApiLoadCount > 1 then // 避免反復加載

Exit;

// 加載SetUpAPI組件

Result := LoadModule(SetupApiLib, SetupApiModuleName);

end;

2)禁用/啟用USB端口

// 禁用/啟用USB端口模塊

function ControlDisk(nStatus: Integer: Boolean;

var

Guid: TGUID;

GUIDStr: WideString;

hCurDevInfo: HDEVINFO;

I, nSize: DWORD;

Res: Integer;

DeviceInfoData: SP_DEVINFO_DATA;

DevIntData: SP_DEVICE_INTERFACE_DATA;

SymbolicName, USB20ID: string;

Buffer: array of Char;

Prop: Cardinal;

begin

Result := False;

ZeroMemory(@Guid, SizeOf(TGUID));// 將GUID結構體清零

GUIDStr := '{36FC9E60-C465-11CF-8056-444553540000}';// USB端口的GUID標識

Guid := StringToGUID(GUIDStr);// 轉換GUID字符串轉換為GUID結構體

hCurDevInfo := SetupDiGetClassDevs(@Guid, nil, 0, DIGCF_PRESENT); // 獲取設備ID

if hCurDevInfo = Pointer(-1) then// 如果失敗則結束

Exit;

ZeroMemory(@DeviceInfoData, SizeOf(SP_DEVINFO_DATA));// 將設備信息結構體清零

DeviceInfoData.cbSize := SizeOf(SP_DEVINFO_DATA);// 指定結構體大小

DevIntData.cbSize := SizeOf(TSPDeviceInterfaceData);// 指定設備接口結構體大小

I := 0;

SetLength(Buffer, 255);// 初始化緩沖區(qū)大小

nSize := 255;

while SetupDiEnumDeviceInfo(hCurDevInfo, I, DeviceInfoData) do// 遍歷所有硬件設備

begin

SymbolicName := GetSymbolicName(DeviceInfoData.DevInst);// 由注冊表取設備符號名

USB20ID := '';

if (ExtractUSBHubPath(SymbolicName, '#', USB20ID) = 0) or

(USB20ID <> 'ROOT_HUB20') then// 如果不是USB2.0設備,則繼續(xù)

begin

Inc(I);

Continue;

end;

if nStatus = 1 then// 1:啟用設備

Result := ChangeDeviceState(hCurDevInfo, DICS_ENABLE, I)

else

if nStatus = 2 then// 2:禁用設備

Result := ChangeDeviceState(hCurDevInfo, DICS_DISABLE, I);

Inc(I);

end;

SetupDiDestroyDeviceInfoList(hCurDevInfo);// 釋放設備信息列表

end;

3) 監(jiān)控考試過程

在考試過程中,為了防止學生啟用已禁用的設備,可創(chuàng)建一個監(jiān)控線程,用于監(jiān)控當前系統(tǒng)中所運行的應用程序。如果發(fā)現(xiàn)禁用的進程,則調用結束進程函數(shù)TerminateProcess,終止非法進程,從而使在線考試系統(tǒng)更安全。在監(jiān)控線程中,周期性地檢查系統(tǒng)中的應用進程,這樣,不僅可以監(jiān)控和屏蔽USB相關程序,而且可以屏蔽任何不相關程序,只要簡單地修改配置文件。下面是一個配置文件范例,也是在線考試系統(tǒng)需要監(jiān)控的進程列表:

Prog1 = 'C:\\Windows\\system32\\cmd.exe'

Prog2 = '搜索結果'

Prog3 = '運行'

Prog4 = 'Temp'

Prog5 = '設備管理器'

Prog6 = '計算機管理'

Prog7 = 'Windows 任務管理器'

Prog8 = 'QQ'

Prog9 = '飛鴿傳書'

Prog10 = 'Outlook'

4 結束語

鑒于在線考試系統(tǒng)的廣泛應用和存在的不足,特別是U盤所帶來的隱患。本文設計與實現(xiàn)了一種基于Windows底層API的USB監(jiān)控和管理子系統(tǒng),在實際考試實踐中,這種方法可以有效地防止考生利用U盤傳遞答題結果,保證了考試的嚴肅性和公正性。使得在線考試系統(tǒng)更加完善和實用。

參考文獻:

[1] 李闖,常銳.基于人工智能原理的考試系統(tǒng)[J].長春工業(yè)大學學報:自然科學版,2009.1(30):64-67.

[2] 林川.《大學計算機基礎》課程網絡考試系統(tǒng)的開發(fā)與應用[J].貴州大學學報:自然科學版, 2009(26):55-59.

[3] 廖治凱. Web考試系統(tǒng)設計與實現(xiàn)[J].電腦知識與技術,2006:67-68.

[4] 張兵,胡建華. 計算機考試系統(tǒng)的研究現(xiàn)狀及基于C/S結構的計算機考試系統(tǒng)的實現(xiàn)[J]. 硅谷,2009(5):64,103.

[5] 胡斌. 在線考試系統(tǒng)的設計和實現(xiàn)[J].教育信息化,2006(2):43-44.

主站蜘蛛池模板: 国产亚洲精品97AA片在线播放| 中文字幕自拍偷拍| 亚洲国产中文欧美在线人成大黄瓜 | 亚洲成A人V欧美综合天堂| 欧美一区二区福利视频| 欧美天天干| 少妇精品久久久一区二区三区| 狠狠v日韩v欧美v| 国产免费精彩视频| 青青草原国产av福利网站| 色网在线视频| 在线亚洲精品自拍| 国产精品自拍露脸视频 | 国产福利拍拍拍| 超碰aⅴ人人做人人爽欧美 | 成人免费午夜视频| Aⅴ无码专区在线观看| 综合成人国产| 国产成人午夜福利免费无码r| 玩两个丰满老熟女久久网| 成人免费午夜视频| 欧美不卡二区| 国产精品入口麻豆| 午夜在线不卡| 日韩欧美中文字幕在线精品| 国产精品丝袜视频| 国产精品理论片| 在线中文字幕日韩| 一级毛片在线播放免费| 亚洲天堂伊人| 91丝袜在线观看| 美女内射视频WWW网站午夜| 国产va视频| 无码粉嫩虎白一线天在线观看| 国产熟女一级毛片| 色妞www精品视频一级下载| 久久国产乱子伦视频无卡顿| 熟妇人妻无乱码中文字幕真矢织江| 国产人妖视频一区在线观看| 成人无码一区二区三区视频在线观看| www.亚洲天堂| 美女国产在线| 精品福利网| 伊人久久久大香线蕉综合直播| 99久久国产综合精品2023| 日韩中文欧美| 国产网站一区二区三区| 亚洲精品成人福利在线电影| 国产精品欧美激情| 欧美精品在线看| 天堂av高清一区二区三区| 国产乱人伦精品一区二区| 伊人久久精品无码麻豆精品| 丁香六月综合网| 亚洲无码视频一区二区三区 | 国产微拍一区| 亚洲久悠悠色悠在线播放| 欧美成人综合视频| 毛片网站免费在线观看| 国产剧情伊人| 国产精品美人久久久久久AV| 国产无码性爱一区二区三区| 一级成人欧美一区在线观看| 成人在线不卡| 国产在线八区| 色视频国产| 午夜日b视频| 欧美曰批视频免费播放免费| 999精品在线视频| 97狠狠操| 国产乱人免费视频| 国产精品va| 欧美日一级片| 伊人大杳蕉中文无码| 亚洲成肉网| 欧美国产综合色视频| 老色鬼欧美精品| 国产福利一区视频| 欧美色香蕉| 98精品全国免费观看视频| 亚洲成A人V欧美综合天堂| 黄色网在线免费观看|