说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用Delphi实现网络驱动器的映射和断开

HTML文档下载 WORD文档下载 PDF文档下载
用Delphi实现网络驱动器的映射和断开

大家在运用Delphi编写网络应用程序时可能会遇到这样一个问题:在一个由Windows NT和Novell Netware组成的网络环境中,应用程序需要使用Novell网上的某些数据,如果每次都手工在Windows资源管理器中映射,断开网络驱动器,不仅繁琐而且显得不够专业。本文将介绍在Delphi中使用Windows32 API函数解决这一问题。

一、 基本原理

在Microsoft Windows环境下,应用程序使用Windows网络函数(WNet)来实现网络功能而不用关心网络的供应商及具体实现。因为WNet函数是独立于网络的。

Wnet函数主要有:WnetAddConnection

WnetAddConnection2

WnetAddConnection3

WnetCancelConnection2等。本文主要用WnetAddConnection2,WnetCancelConnection2函数,下面简单介绍一下,关于WNet函数更详细的资料请参考Delphi的连机文档和Microsoft API函数说。

WNetAddConnection2在Windows.pas中的函数原型如下:

function WNetAddConnection2

(var lpNetResource: TNetResource;

lpPassword

lpUserName: PChar; dwFlags:

DWORD): DWORD; stdcall;

为调用此函数必须填写

lpNetResouce结构,此结构的定义为:

typedef struct _NETRESOUCE{

DWORD dwScope;

DWORD dwType;

DWORD dwDisplayType;

DWORD dwUsage;

LPTSTR lpLocalName;

LPTSR lpRemoteName;

LPTSr lpProvider;

} NETRESOURCE;

这里使用dwType

lpLocalName

lpRemoteName

lpProvider几个参数。其含义如下:

dwType : 用于指定网络的资源类型,

有以下RESOURCETYPE_ANY(任何资源)

RESOURCETYPE_DISK(磁盘资源)

RESOURCETYPE_PRINT(打印机资源)。

lpLocalName : 指定本地设备。

lpRemoteName : 指定远程网络名。

lpProvider : 指定提供网络资源的供应商。

如为空,则表示供应商未知。

WNetAddConnection2函数的

lpPassword为远程资源的口令。

lpUserName为远程资源的用户名。

dwFlags标志位用于指定登录时是否重新连接

(0时表示不重新连接,CCONNECT_UPDATE_

PROFILE登录时重新连接)。

WnetCancelConnection2在Windows.pas

中的函数原型如下:

function WNetCancelConnection2

(lpName: PChar; dwFlags: DWORD; fForce: BOOL):

DWORD; stdcall;

lpName : 要断开的远程网络资源或本地重定向驱动器。

dwFlags : 含义同上。

fForce : True表示不管是否有文件打开,

强制性断开网络驱动器;False 表示如有文

件打开则函数运行失败。

二、实例

在Delphi的File菜单下选择New Application,在Form1上放置一个Button,在Button1的Click事件中键入如下代码:

procedure TForm1.Button1Click

(Sender : TObject);

var

NetSource : TNetResource;

begin

with NetSource do

begin

dwType := RESOURCETYPE_ANY;

lpLocalName := 'X:';

// 将远程资源映射到此驱动器

lpRemoteName := '\\hqServer\sys';

// 远程网络资源

lpProvider := ''; // 必须赋值

如为空则使用lpRemoteName的值。

end;

WnetAddConnection2(NetSource

'Password'

'Guest'

//用户名为Guest,口令为Password

CONNECT_UPDATE_PROFILE);

//下次登录时重新连接

//此时在Windows资源管理器中可看到网络驱动器X:

if MessageDlg('Are you sure to disconnect Drive ?'

mtConfirmation

[mbYes

mbNo]

0) = mrYes then

//不管是否有文件打开,断开网络驱动器X:

WNetCancelConnection2

( 'X:'

CONNECT_UPDATE_PROFILE

True);

end;

end;

本程序在Delphi3.0

4.0、PWindows95、Novell Netware 3.12下编译运行通过。

《植物大战僵尸》神秘续作:可能是一款横版游戏 高性价比:GlassUp宣布支持Windows Phone系统 未挖掘到足够信息:非收集数据少,是利用率只有1% 下一个帝国:谷歌收购初创公司DNNresearch 苹果更新Apple Store应用,可查看零售店库存 开源软硬件:福特汽车的OpenXC计划 Temple Run:Oz稳坐付费榜头把交椅,迪士尼名利双收 Facebook开放图谱示好开发者 新增书籍电影等九项操作 源代码管理的六大视觉模式 最新算法面世 可提高云数据库性能 分析称平板电脑应用将占全球应用经济的35% 三大运营商对微信等OTT业务摊牌 Runscope联合创始人John Sheehan:API已死,API永存! IBM在京发布大数据白皮书 提出五项关键建议 Twitter开源Parquet 将支持Impala加速实时查询 使用Go代替Ruby,将服务器数量从30降到2 初创公司SwiftStack:“放在盒子里的S3” 赫尔辛基:全球移动游戏开发者的“黄埔军校” 不只属于三星!uMoove将发布“眼球追踪”SDK Android掌门人Andy Rubin宣布辞职 Chrome主管接任 openSUSE 12.3发布 弃MySQL拥抱MariaDB Meteor:让实时Web App成为主流 别了,Google Reader!谷歌于7月1日关闭服务 “天网”降临 机器人或将崛起? 涅槃重生:Qt 5 for Android预览版发布 Google Play将逐步移除广告拦截应用 Shapeways公司开放API 3D打印时代来临 37signal设计师眼中的iOS与Android系统 VMware/Oracle向公有云拓展生态系统 AWS“山寨”技术伙伴创意与产品,是自我完善还是杀鸡取卵? 苹果发布OS X 10.8.3 新版Boot Camp可支持Windows 8 支持国产软件——海威数据仓库前台工具Hdc3.x下载 救救我的linux啊?它快不行了。 回答“一个动态创建孔件时的错误,请大家指点”贴后请到这里面领分(共700分)(六) 怎么在Applet中定时显示一数值? 受不了啦,有谁在上班时间在CSDN泡上一天的?? COM、DCOM、COM+有何区别? 该死的缓冲:document.all("pb").innerText="fas"; 这个问题,我不会!你呢??来看看! 请问如何用ASP同时上传多张图片? 哪位大侠能提供关于"资源文件(*.rc)"在BCB5中使用的系统、详细的资料? 菜鸟问题:我想用一个win32 api函数但是不懂得如何使用。 listview与数据库的一系列联系,重点!!! 请教!!!帮帮小弟!!! 两周了--还是不行 怎样取得本机的名称? 我想听网络广播, 怎样做呢? 一个小问题 ????? 回答“一个动态创建孔件时的错误,请大家指点”贴后请到这里面领分(共700分)(七) 计算机知识大赛 我的问题很简单,可是我不会! 回答“一个动态创建孔件时的错误,请大家指点”贴后请到这里面领分(共700分)(八) 这样的游戏一个值多少钱?请报价。 高手快进!小弟有一事不明!!告急! 取ADO的recordset对象的recordcount属性总是 -1,如何解决? 这样的网络游戏一个值多少钱?请报价。 软件发布:《加密樵夫》 软件发布:《加密樵夫》 谁有Dreamweaver4.0的注册码,我晕,555555555…~~~~~~~~~ 我曾在本论坛看到一篇“用纯ASP代码实现图片上传并存入数据库中”的文章,可是怎样实现一个页面上传多幅图片呢,高手能否帮忙看一下? 如何检测一个超链接是不是死链接 软件发布:加密专家系统 只要点一下,妹妹我就以身相许 谁有Dreamweaver4.0的注册码,我晕,555555555…~~~~~~~~~11 请问只要是线程就有消息队列,还是此线程产生window后才有消息队列?在控制台程序中,在消息循环中,当受到一wm_timer消息时,此消息将发送给那一window procedure? 软件发布:三维几何画板 CSDN有徐州的朋友吗 请教高手一个关于图像格式的问题 高手清帮忙:如何获得一个控件的电子签名认证?急,急,急! 觅有时间有经验用MAPINFO开发GIS的高手? IE 能不能同时浏览2种以上不同设置的网页? 初级asp问题 询问-----上海在哪里有软件考试报名? 怎样用SDK的方法改变文本框的前景色和背景色?(内空) 能推荐几个有关COM、ActiveX技术的网站吗?每个10分不够再加。 请问ljhua,ASP网页怎样调用*.bat文件,是服务器上的还是客户机上的bat? ****************** 先散掉点分,省得走的时候累赘 ****************** UNICODE和WinMain 一个空战游戏,附源程序! 创建WebSnap应用程序(一) 请教一个http错误号 vs.net安装(2) 第8-10题) 关于音标的几道题……根据相应的音标补全单词1./əu/ h_le thr__t g__t b__t2./ɔi/ b__ t__let t__ s__l3./ai/ b_k_ m_ k_t_ fl__4./eə/ p___ ch___ b____ h_____5./au/ h__se h__ n__ gr__nd6./ei/ c_k_ d__ m__k__ pl__7./iə i是虚数单位、若复数Z=i(1+3i)、则复数的虚部为 初中数学,这道题是怎么算出来的?第8题 图为一台电热水器的电路示意图.当开关S闭合时,电热水器处于加热状态,功率为440W;当S断开时,电热水器处于保温状态.整个电路的功率为22W.求:(1)当S闭合时,电热水器工作5min消耗的电能为 英语翻译 反比例函数y=k/x图像经过点(3,2014/3)p为其图像上一个整点(注:整点表示很坐标纵坐标均为整数的点),那么x+y的最大值是 四年级下册的口算练习题,一定是乘除法的.20道比如:0.5×10= 最好有答案. 英语翻译 (第22章第三单元测试卷答案)(第23章第二单元答案)(第23章第三单元答案) 一个长6dm、宽5dm、高8dm的长方形容器内装满水.这个容器内水的体积是( )立方分米.把一根24dm长的铁丝折成一个最大的正方形,它的面积是( )平方分米.把一根24dm长的铁丝折成一个最大的 求英语1题 初中数学七年级下人教版基础训练第39页第8题答案 流域自然侵蚀速率是反映流域地貌形态变化的重要指标.据研究,南美洲亚马孙河流域自然侵蚀速率远低于南亚恒河流域,其最主要的影响因素是A.地形 B.降水量 C.植被类型 D. 城市化水平 求英语15题 新课标人教版二年级【下】语文单元测试卷【4】 问几道数学题急这用!1.一个数的5倍再加上5正好是100这个数是多少?(方程解)2.一个数的8倍与它4分之1的和是66,这个数是多少?(方程解)3.甲乙两个工程队同修一条公路,它们从两端同时施工. 怎样学英语 七年级英语报刊急练习题 问几道数学题:具体过程要讲清楚点哦,例如表示什么的~1.一堆煤,第一天运走1/4,第二天运走剩下的一半,第三天又运了剩下的2/3,最后剩下的煤比第三天运走的3/4少10吨.三天一共运了几吨?2.一项 这句英语有错误吗Do live is the biggest adventure 七年级英语练习题报刊 有一条5.6米长的木料,如锯成长为0.8米的木料,需要30分钟,那麽锯成每段长0.7米的短木料,需要()分钟 16~19题 七年级英语报刊练习题急 1、Which city will hold the 2012 Olympic Gamas?Is the city in USA?2、Is Hangzhou in Jiangsu Province?3、Is New York the capital of USA?4、How many legs does a butterfly have?5、Which country has the most poeple?6、In 2004,16 June falls on a Wed 16题和19题 英语报纸习题,初一上一.根据所给句子完成下句,是两句意思相同或相近.每空一词1. He reads English for thirty minutes every morningHe __ __ __ __ __ English every morning2. I don't know the answer to the question.I don't kn 有一块长5m的模板现用它做一个斜面,已知斜面与水平面夹角为30度,物体重为450N,现将这个物体沿斜面推到高2m的位置,若斜面的机械效率为75%,求 (1)推力做的有用功 (2)推力的大小 (3)推 第19题,要过程 平方根报纸练习题初一下1.一房间的地面恰好由64块正方形地砖铺成,共16平方米,求每块地砖的边长.2.已知2a-1的平方根是+3,-3,b+14的平方根是+4,-4,求a+2b的平方根. 翻译句子,每空一词.1.我们每天都刷牙.we (___)(___)(___)every day,2.蒂姆星期六早上打网球.tim (___)(___)on (___)(___).3.你想了解安娜早上的活动吗?do you want to (___)(___)(___)mo 第十九题 七年级英语报纸U7——U9练习题1.根据首字母及句意提示,完成单词.My sister most of his time on his work every day.2.句型转换Peter isn’t doing his homework now.(用last night 作时间状语改写句子)3.用介词填空.1.< 根据首字母完成单词.1.a say yes2.r to get something given3.f not succeed4.e go or come into 5.s try to look for 第十九题 二期课改配套教辅读物2011-2012学年度 修订本光明日报?出版社 七年级上学期英语报纸13期频度副词练习题请快点谢谢我爸爸总是很忙. my father ______ _______ busy. 2.玛丽经常帮她妈妈打扫房间 mary ______ ______ her mother clean the room. 3.我通常早上七点吃早餐. i 这道题该怎么做啊希望有人能帮我 二期课改配套教辅读物 试卷7, 高中生订阅哪些报纸、杂志来提高英语阅读能力?最好有中文翻译的,或者后面有练习题可以检测是否读懂? 希望杯难不难,还记得题目的话,给我出一道, 初中数学 同步练习与测试 的答案 急需 西游记练习题西游记每回合出三个问题 谢. 这道题怎么做 快点你快点给我答案希望快点过答案 1、已知(x+my)(x+ny)=X的平方+2xy-6y的平方,求(m+n)mn的值.2、已知:a的平方+a的平方分之一=3,求a-a分之一的值.3、若4x的平方-3(a-2)x+25是完全平方式,求a的值.4、当x为何值时,x的平方+6x-15有最值.5、求 西游记的练习题读完西游记后,哪些练习题可以出?要多而且精,最好不要选择和填空,多些理解性的题,如:孙悟空是个怎样的人物等等. 希望各位能纯手工打造质量为m的物体以恒定速率v沿半径为R的竖直圆轨道运动,已知物体与竖直圆轨道间的摩擦因数为μ,求物体从轨道最低点运动到最高点的过程中,摩擦力做了多少功.望回答 初中数学 第八题 西游记的相关练习题要有答案的! 1、有颜色是红、黄、蓝三种小球各30个,混合放在一个布袋里,一次摸出10个小球,其中最少有几个小球的颜色是相同的,说说理由2、布袋里有装有8个红球和5个白球,一次必须摸出几个球才能保证 初中数学!第八题,谢谢! 西游记试题是要提问题的,就是帮我写一些西游记的问题,是关于每一章回提问的,我只要第70~100章的,每回提2个问题,一共60个,至少40个,如果我采用了,会追加很多分的~不对,我的意思是关于每回 这道题的答案…………………… 如图,在△ABC中,AB=AC,以AB为直径的○O分别交BC,AC于点D,E,连接EB交OD于点F.(1)求证OD⊥BE(2) 若DE=√5/2,AB=5/2,求AE的长. 西游记的习题越那难月好 the teacher asked the boy many questions,but he only answered____of them.A.some B.lots C.each D .few 某铁桥长1000米 现有一列火车要从桥上过 火车完全通过桥需要60秒 整列火车在桥上的时间是40秒 求火车的速度和长……列出方程组并说明理由就行了 比如 火车的长度等于. 一道物理题,(双选)一个物体底面积为0.1平方米,桌子的底面积为1平方米,物体重200N,那么桌子所受物体压强为A.可能是200pa B.可能是2000PaC.可能是4000Pa D.可能是1000Pa双选双选! 有人从一把扑克牌里选了一张牌,他把这张牌的花色告诉了老王,而把点数告诉了老张.老王和老张都晓得这把牌由以下牌构成:黑桃勾、8、4、2;红桃尖、框、4;方片尖、5;梅花锯、框、5、4
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn