局域网内学生个人网络盘的设计和实现Word文档格式.docx

上传人:b****1 文档编号:5834856 上传时间:2023-05-05 格式:DOCX 页数:13 大小:333.73KB
下载 相关 举报
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第1页
第1页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第2页
第2页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第3页
第3页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第4页
第4页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第5页
第5页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第6页
第6页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第7页
第7页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第8页
第8页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第9页
第9页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第10页
第10页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第11页
第11页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第12页
第12页 / 共13页
局域网内学生个人网络盘的设计和实现Word文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

局域网内学生个人网络盘的设计和实现Word文档格式.docx

《局域网内学生个人网络盘的设计和实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《局域网内学生个人网络盘的设计和实现Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

局域网内学生个人网络盘的设计和实现Word文档格式.docx

因此,我亲自动手制作了一个保密性高,稳定安全且操作简单方便的学生个人“网络盘”。

1.“网络盘”的设计思路

Windows早已为我们准备好了网络盘,我们要做的只是要更好地控制和管理它。

大家都知道,使用Windows可以将局域网内其他计算机的共享文件夹映射成网络驱动器,即所谓的“网络盘”(如:

X:

Y:

)。

对此网络盘的操作方法跟本地盘的是完全一致的,能直接存取网络盘中的文件。

而在VB中调用相应的API函数,可以在服务器端自动设置或取消文件夹的共享,也可以在学生机端自动映射或断开网络盘。

因此,可以设计程序在服务器端按学生名单自动批量制作各个学生的个人文件夹,并设置隐藏的加密共享。

学生机使用客户端程序验证学生身份后,便能自动将服务器中的特定个人文件夹映射成网络驱动器。

如下图所示:

 

具体的操作流程:

对于学生而言,登陆之后只是感觉到多了一个硬盘分区,无须再说明其他的操作方法。

服务器端程序可管理学生名册,可增删网络盘,增删各个网络盘内的文件等;

而客户端程序可验证学生身份,自动映射或断开网络盘,可监测网络盘内的文件类型及总容量,并可帮助学生在退出网络盘后自动关机或重启。

学生无法进入他人的网络盘,在使用网络盘的过程中也不能自行断开网络盘,不能乱塞文件,否则强制自动关机。

笔者选择的编程语言是VB6.0,后台数据库是Access。

学生机程序放在服务器共享给学生机,通过网络共享运行,便于更新升级。

2.关键代码

程序的关键是正确使用设置/取消共享、映射/断开网络驱动器的API函数。

总结如下:

功能

API函数

操作系统

服务器端

客户端

设置共享

取消共享

映射网络驱动器

断开网络驱动器

Win98

NetShareAdd50

NetShareDelete

WNetAddConnection2

WNetCancelConnection2

NT以上版本

NetShareAdd

NetShareDel

现以服务器的操作系统为Win2000的情况为例,将关键的代码及实现过程简介如下:

因篇幅所限,略去制作学生个人文件夹的的步骤,略去读取Access数据库信息的代码,略去API函数声明及其有关的常数、结构的定义。

读者可自行查阅有关API函数用法的帮助文件。

(1)设置共享(服务器端)

设置共享的过程,便是读取数据库,并按数据库中学生信息反复调用某个设置共享的函数建立共享。

NT以上操作系统设置共享的函数:

PublicFunctionCreateShareNT(ByValsSharePathAsString,_

ByValsShareNameAsString,_

ByValsRemarkAsString,_

ByValsROPassAsString,_

ByValsRWPassAsString,ByValbShareTypeRWAsBoolean)AsLong

‘参数说明:

‘sSharePath被共享的文件夹路径

‘sShareName共享名,加密并加字符$

‘sRemark共享的备注信息

‘sROPass只读共享密码

‘sRWPass完全共享密码

‘bShareTypeRW共享类型,True为完全,False为只读

DimreAsString

DimsServerAsString

DimlngServerAsLong

DimlngNetnameAsLong

DimlngPathAsLong

DimlngRemarkAsLong

DimlngPwAsLong

DimparmerrAsLong

Dimsi2AsSHARE_INFO_2

sServer="

"

'

本地共享

lngServer=StrPtr(sServer)'

转成地址

lngNetname=StrPtr(sShareName)

lngPath=StrPtr(sSharePath)

如果有备注信息

IfLen(sRemark)>

0Then

lngRemark=StrPtr(sRemark)

EndIf

如果有密码

IfLen(sRWPass)>

lngPw=StrPtr(sRWPass)

初始化共享信息

Withsi2

.shi2_netname=lngNetname

.shi2_path=lngPath

.shi2_remark=lngRemark

.shi2_type=STYPE_DISKTREE

.shi2_permissions=IIf(bShareTypeRW,ACCESS_ALL,ACCESS_READ)

.shi2_max_uses=-1

.shi2_passwd=lngPw

EndWith

设置共享(用户名,共享类型,共享信息)

CreateShareNT=NetShareAdd(lngServer,2,si2,parmerr)

EndFunction

可类似地编写出Win98系统下设置共享的函数CreateShare98

‘被反复调用的设置共享的函数:

PublicFunctionCreateShare(ByValsSharePathAsString,_

ByValsRWPassAsString,ByValbShareTypeRWAsBoolean)AsLong

IfOSIsWin98Then

CreateShare=CreateShare98(sSharePath,_

sShareName,_

sRemark,_

sROPass,_

sRWPass,bShareTypeRW)

Else

CreateShare=CreateShareNT(sSharePath,_

EndIf

其中调用了一个判断系统版本的子函数OSIsWin98,其代码在此略。

设置共享的过程:

PrivateSubCreateShareS()

……

Do

CreateShare"

d:

\ShareDir\"

&

rs("

XueHao"

)&

XingMing"

),_

JiaMiStr(rs("

))&

“$”,_

“”,”lupheace”,”lupheace”,True

rs.MoveNext

LoopUntilrs.EOF

rs.Close

EndSub

其中JiaMiStr是加密字符串的函数,其代码在此略。

(2)删除共享(服务器端)

删除共享的过程,便是读取数据库,并按数据库中学生信息反复调用某个删除共享的函数。

NT以上操作系统删除共享的函数:

PublicFunctionDeleteShareNT(sShareNameAsString)AsLong

DimsServerAsString

DimlngServerAsLong'

计算机名

DimlngNetnameAsLong'

共享名

DeleteShareNT=NetShareDel(lngServer,lngNetname,0)

可类似地编写出Win98系统下删除共享的函数DeleteShare98

被反复调用的删除共享的函数:

PublicFunctionDeleteShare(ByValsShareNameAsString)AsLong

IfOSIsWin98Then

DeleteShare=DeleteShare98(sShareName)

Else

DeleteShare=DeleteShareNT(sShareName)

删除共享的过程:

PrivateSubDeleteShareS()

DeleteShareJiaMiStr(rs("

“$”

(3)映射网络驱动器(客户端)

无论是Win98还是NT以上版本的操作系统,都可用同一组映射/断开网络驱动器的API函数。

PublicFunctionCreateNetDrive()AsBoolean

DimNetRAsNETRESOURCE

DimErrInfoAsLong

NetR.dwScope=RESOURCE_GLOBALNET

NetR.dwType=RESOURCETYPE_DISK

NetR.dwDisplayType=RESOURCEDISPLAYTYPE_SHARE

NetR.dwUsage=RESOURCEUSAGE_CONNECTABLE

NetR.lpLocalName="

X:

NetR.lpRemoteName=RemoteDiskPath‘远程文件夹网络路径,根据学生登陆信息生成

ErrInfo=WNetAddConnection2(NetR,"

lupheace"

vbNullString,CONNECT_UPDATE_PROFILE)

CreateNetDrive=(ErrInfo=NO_ERROR)

(4)断开网络驱动器(客户端)

PublicFunctionDeleteNetDrive()AsBoolean

DimErrInfoAsLong

DimstrLocalNameAsString

strLocalName="

ErrInfo=WNetCancelConnection2(strLocalName,CONNECT_UPDATE_PROFILE,True)

'

True表示所有连接都强制断开

DeleteNetDrive=(ErrInfo=NO_ERROR)

3.结束语

用这种方法实现的学生个人“网络盘”高效稳定,保密性好,大大方便了对共享文件的使用和管理。

它的优点是:

能实时保存,操作简便,收发过程自动完成,并能连续几节课自动收发。

将服务器端和客户端程序的功能稍稍增强,即可让“网络盘”额外具有学生报到、修正学生机时间、信息广播、显示实时座位表、使用记录等实用的机房管理功能。

笔者在“网络盘”的基础上已完成《小飞侠考试改卷系统》的编写。

“网络盘”在日常教学中担当着广播文件,收发作业的角色,而在考试时担当着收发试卷的角色。

该软件投入教学已有两年多,测试通过的系统包括Win98、Win2000、WinXP和Win2003,同时操作的学生数量在60人左右,效果良好。

希望本文能给读者一些参考和启迪.。

不当之处,请批评指正。

备注:

《小飞侠考试改卷系统》下载地址:

作者邮箱:

lupheace99@QQ:

39135831

参考文献:

1.《VisualBasic6技术大全》机械工业出版社

2.《WindowsAPI函数参考手册》人民邮电出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2