郭建利计算机组装与维护,基于VB实现的学校机房U盘实时监控

0引言

在学校的机房中经常需要进行上机实验环节的测验,在此过程中为了防止作弊是禁止使用U盘的。虽然有不少方法可以通过相应的设置禁止USB口的使用,但测验过后又需要重新开放USB口的使用。如果通过程序对USB口进行实时监控,只要有人在USB口插入U盘后就马上报警,可有效防止作弊行为的发生,并避免了反复设置的繁琐。本文介绍了在VB中使用SysInfo控件对U盘进行实时监控,并给出了实现的关键代码。

1基本原理

SysInfo控件可以检测操作系统提供的信息,同时对操作系统产生的事件作出反应。在Windows中,对于新设备添加到系统之后能够被自动检测出来,使用SysInfo控件的属性和事件可以分享这种“即插即用”技术带来的好处。Sys-Info控件不是标准的VisualBasic控件,需要通过选择“工程”→“部件”命令打开的对话框中选中“MicrosoftSys-infoControl6.0”复选框,将其添加到工具箱中。

使用SysInfo控件的DeviceArrival和DeviceRemove-Complete事件可以对加载驱动器、卸载驱动器的事件作出响应,通过该控件的这两个事件可以判断是否有存储器插拔。在本例中,使用了SysInfo控件的DeviceArrival事件,该事件当系统中添加新设备时产生。事件有四个参数,其中DeviceType指示已添加设备的类型,等于2表示添加了新的磁盘;deviceID参数识别设备的值,通过它可以转换得到新磁盘的盘符,其值等于2的n次方,n即为盘符(对应字母顺序A盘为0、B盘为1...)。得到新磁盘的盘符后还要判断其是否为U盘,这需要使用API函数GetDriveType。该函数的功能是判断一个磁盘驱动器的类型,其返回值2表示可移动磁盘。一旦发现新添加的是U盘,利用API函数NetMessageBufferSend给局域内指定为监控服务器的接收端计算机发送报警信息。使用这一函数的时候需要知道本机的计算机名,这通过调用API函数GetComputerName来实现。

2具体实现

启动VB新建一个窗体,在该窗体上添加一个SysInfo控件,并将其命名为SysInfo1。在窗体中输入如下代码:PrivateDeclareFunctionNetMessageBufferSendLib"NETAPI32.DLL"(ServerAsAny,yToNameAsByte,yFromNameAsAny,yMsgAsByte,ByVallSizeAsLong)AsLong

PrivateDeclareFunctionGetComputerNameLib"kernel32"Alias"GetComputerNameA"(ByVallpBufferAsString,nSizeAsLong)AsLong

PrivateDeclareFunctionGetDriveTypeLib"ker-nel32"Alias"GetDriveTypeA"(ByValnDriveAsString)AsLong

PrivateSubForm_Load()

IfApp.PrevInstanceThenEnd

App.TaskVisible=False'在任务管理器中隐藏程序Me.Hide'隐藏程序窗体

基于VB实现的学校机房U盘实时监控

RealizationofUSBDiskReal-timeMonitoringinSchoolComputerRoomBasedonVB

梁里宁

LiangLining

(暨南大学计算中心,广东广州510632)

(ComputerCenter,JinanUniversity,GuangdongGuangzhou510632)

摘要:介绍了利用VB所实现的学校机房U盘实时监控,并给出了实现的关键代码。

关键词:VB;U盘;实时监控

中图分类号:TP371文献标识码:A文章编号:1671-4792-(2009)1-0157-02

Abstract:ThispaperpresentshowtorealizeUSBdiskreal-timemonitoringinschoolcomputerroombyuseofVBlanguage.Therealizationkeycodesarealsogiven.

Keywords:VB;USBDisk;Real-timeMonitoring基于VB 实

的学

房U 盘实时监控

157

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值