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

用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下编译运行通过。

豌豆荚王俊煜:将推支付SDK 与开发者3:7分成 英特尔-百度移动应用测试中心(MTC)正式启动 Intel将在2014年为数据中心用户定制低功耗SoC芯片 情绪低落?没事,让计算机来帮你! 水果生意难做 前新浪架构师徐佳转行试水挖煤 思考软件开发中的快与慢 Apache CouchDB注入新鲜血液,整合分布式技术 CSS Shapes:Web设计人员的新工具 Android 4.3正式发布:四大新功能一览 史玉柱的创业经验谈 3G门户和GO桌面:海外推广的生意经 系统级编程语言性能大PK D语言成首选 解读Facebook第二季度财报 移动业务风生水起 如何避免失败,像Google一样玩转大数据 首届游戏运营技术论坛隆重开幕,共论大数据时代的游戏运营之道 OpenStack Swift遇到了Erasure Code 微软Win7 IE11开发者预览版发布 开始改进开发工具讨好开发者 个性化推荐服务商百分点宣布B轮融资1000万美金 全球著名互联网企业背后的开源力量 基础设施对决Facebook vs. Google:差距绝不是一点点 Amazon Q2财报同比转亏,但AWS反其道而行:高歌猛进! 开拓海外市场的两年:海外上线小技巧 SDCC 2013首批讲师名单出炉 一线工程师唱主角 [开源推荐] 跨平台的.NET运行环境 Mono 3.2发布 Heroku发布API平台Beta版 采用OAuth2.0安全授权 大数据时代:移动数据能为我们带来什么? iOS开发经验谈:如何提高应用开发效率? 贝索斯:你否定亚马逊的现在 我决定亚马逊的未来 谷歌新产品Chromecast:一夜之间价格从35美元飙至100美元 移动周报:苹果5周年限免神作,BADLAND开发者访谈 开源平台Cloud Foundry获IBM和百度支持,步入高速发展的“黄金期” 3000-5000元寻求软件开发合作!!! tfilesteam怎么才能显示出文本 pb中如何执行sp_who并得到结果 3000-5000元寻求软件开发合作!! 怎么用IHTMLDocument2接口查询IHTMLElement接口 3000-5000元寻求软件开发合作!!!!! 日期数据类型的问题;MDI子窗口的问题。 top851 用VC打开SQL数据库问题! QR怎樣讓報表分列 诚征工程外包 我的AOUTOCAD总装不上? 如何实现在asp页面上操作,备份数据库? PB中发送HTML邮件问题 各位仁兄。我要在内存位图上作画。怎么搞。help.255' 刷新另一个页面的问题 ■■BCB没有PTR函数?DELPHI中的PTR对应BCB中的函数是什么?请高手指教■■ 我加不起分,怎么回事? 求一个位运算的算试 《深入浅出MFC》中一个小问题不明白! 关于键盘消息的问题 谁有《Linux内核源代码分析》.发给我或告诉我连接都给分 在SESSION STARTZ()中是不是不能用ASP脚本程序? 问一个菜鸟级的问题。答者有分。 为何我用CDialogBar生成的停靠栏上Button都是灰色的? Help!!help!!请教如何在vc程序将我的信息发到别人的手机中?? tapi播放语音 关于变量传递问题,请高手帮忙! 有谁在OnDraw()中用过MessageBox()?为什么不是死循环?怎么解释发生的现象? 关于播放flash的问题 把0显示成0.00怎么弄? 简单问题,怎样得到ListView一单元格中的内容,如用GetItemText请问里面的参数怎样添? 全新安装的redhat 7.2为什么启动kde后不能打开Konqueroer浏览器和主目录 研究生在毕业时真的比本科生有优势吗? 请教:谁知道自动控制原理根轨迹乃试图。。,的算法? 我的AOUTOCAD总装不上??? 爱恋是什么东西?是好人就来看!!! 新闻组(NNTP)怎么用? 为何我用 Delphi写的 MDI Child Window关闭后无法打开? 为什么这样画不行呢? 语句char a='\72'则变量a包含几个字符 急,不难的问题(有代码) 问一个幼稚的问题,delphi6.0分为那几个版本,你们都用的哪一个。 呵呵,下网了,今天捞了150多的专家分,太少了~~,明天在我星期5发布的帖子里给大家分,每个人大概都有10分左右吧~~ 请问各位,现在什么版本的LIUX比较好,你们一般用那种? 快毕业了才心动!怎么办? 为什么我的可用分越来越少,参与分加得少,怎么回事啊 快毕业了才心动,怎么办? 有什么办法可以加快ACCESS的速度 快毕业了才心动~怎么办? 请问设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值是多少? 佳佳的写字台的抽屉长45厘米,宽35厘米,高14厘米,做这样一个抽屉至少需要木板多少平方分米? 0.15μg/10ml怎样换算成以mg/m3的单位的浓度 农夫山泉上面标100ML水有400MG钙,牛奶也就100ML有150MG钙 某停车场,停了24辆汽车,客车比汽车少8分之小汽车5,汽车的数量比小汽车少25分之13.客车、小汽车各多少辆 停车场里有小轿车,它的数量是大客车的四倍.小轿车比大个十多36辆.小轿车和大客车各有多少量? 0.1mol/L的醋酸钠与0.05mol/l的氢氧化钠物料守恒电子守恒质子守恒 停车场有18辆大客车,大客车的车辆数比小汽车多7分之1.小汽车有多少辆?要算式.是少不是多 一个圆的周长减少五分之一,面积就减少30平方厘米,原来圆的面积是多少是三分之一 0.1mol/L的醋酸与0.05mol/l的氢氧化钠物料守恒电子守恒质子守恒 停车场大客车比小汽车多3辆,小汽车的辆数是大客车的七分之六,大客车有多少辆? 大圆的周长是小圆周长的1.5倍,大圆的面积是小圆的面级的百分之几 一个圆的周长缩小3倍,则它的直径缩小几倍?半径缩小几倍? 1iu等于多少克 向10ml 2mol/L的氯化铝溶液中加入0.5mol/L的烧碱溶液,反应后得到沉淀0.78g,则加入烧碱溶液的体积可能是()或() 一个数的三次方怎么打啊 还有其他次方(知道都打出来吧) 一个木制的抽屉,宽4分米.做这样的一个抽屉至少需用木板多少平方分米? 向1mol/L,10ml的Alcl3溶液中加入1mol/L的NaOH溶液,得到沉淀0.312g,求所加NaOH溶液的体积 1__5的四次方数 一张办公桌有5个抽屉,每个抽屉长55厘米,宽45厘米,深7米,做这个办公桌的抽屉至少需要多少平方米木板【得数保留整数】开始时厘米最后换算单位到米 0.1mol/L HCL 滴定 20ml 0.1mol/L NaOH 实验的相对偏差如何计算 往20ml1mol/l的ALCL3溶液中滴加0.2mol/l的NAOH溶液最后有0.78g沉淀,问加入NAOH溶液的体积是多少毫升 一张办公桌有五个抽屉,每个抽屉长55厘米,款45厘米,深7厘米,做两个办公桌地抽屉,共需多少平方米 制作一个长6分米,宽4分米,高2分米的抽屉,至少需要多少平方分米的木板、 周长是10分米的正方形的面积是1平方米.这句话是对的还是错的,为什么? 停车场上,小汽车的数量是大货车的2.5倍,小汽车开走45辆后,剩下的两种车的数量相等,原来各有多少辆车? 用0.1mol/L的NaOH溶液滴定0.1mol/L的盐酸20ml,计算滴加的NaOH体积不同时,溶液的ph如加如NaOH溶液15.00mL 19.05mL 这两个随便一个就够 一个正方形,当他的边长都增加一分米后,面积比原正方形增加五平方米,求原正方形周长是多少分米? 停车场上,小汽车的数量是大货车的2.5倍,小汽车开走45,剩下的两种车的数量相等,原来各有多少辆车? 木匠师傅要做一个长60厘米、宽4分米、深1.8分米的抽屉,至少要用木板多少平方分米?要求快速解答, 一个停车场里大汽车辆数的5/6正好是小汽车辆数的1/3,大汽车的辆数是小汽车的几分之几?说理由 停车场上,小汽车的数量是大货车的2.5倍,小汽车开走45辆后,剩下的两种车的数量相等,原来各有多少辆车 .用0.1mol.L-1 NaOH溶液滴定0.lmol.L-1盐酸,如达到滴定的终点时不慎多加了1滴NaOH溶液(1滴溶液的体积约为0.05mL).继续加水至50mL,所得溶液的pH是( )A.4 B.7.2 C.10 D.11.3 仃车场里有小汽车的辆数是大汽车的4分之3,大汽车的辆数是小汽车的几分之几? 停车场内大货车和小汽车数量的比是是2:5,场内停有有75辆小汽车,有大货车多少辆? 停车场上,大客车的数量是小汽车的4倍,大客车比小汽车多60辆,大客车.小汽车各有多少辆列出公式最好要设X的 停车场里大汽车的辆数比小汽车少25辆,小汽车的辆数是大汽车的1.5倍,大汽车和小汽车各多少辆? 用0.1mol/L的氢氧化钠溶液滴定20mL 0.1mol/L的醋酸溶液,写出下图各点粒子大小关系( 停车场里小轿车的辆数是大客车的4倍.小轿车比大客车多36辆.问小轿车和大客车各多少辆. 1mol/L的硫酸与2mol/L的硫酸等质量混合,所得溶液的物质的量浓度为 向20mL 0.5mol/L的醋酸溶液中逐滴加入等物质的量浓度的烧碱溶液,下列关于混合溶液的相关说法错误的是向20mL 0.5mol/L的醋酸溶液中逐滴加入等物质的量浓度的烧碱溶液,测定混合溶液的温度变化 停车场停的大客车和小轿车数量比是5:7,停的小轿车有35辆,停车场的大客车和小轿车一共有多少辆? 将2mol/L硫酸铜溶液和1mol/L硫酸溶液等体积混合,问①混合液中硫酸铜和硫酸的物质的量浓度②混合液中铜离氢离子,硫酸根离子的物质的量浓度 一个抽屉长5分米,宽4分米高3分米做8个这样的抽屉至少要木板多少平方分米?小学五年级数学 停车场的小轿车和大客车共有27辆,小轿车的数量是大客车的2倍.小轿车和大客车各有多少辆?最好讲讲 1L稀硝酸和稀硫酸的混合溶液,其溶质的物质的量浓度分别为0.1mol/L和0.2mol/L.若向该混合溶液中加入足量的铜粉.则最多能溶解铜粉的质量为? A 2.4g B 3.2g C 6.4g D 9.6g 求详细的解题过程! 一个木制的抽屉,宽4分米.做这样的一个抽屉至少需用木板多少平方分米 一块正方形瓷砖的周长是9分之8米,这块正方形瓷砖的边长是多少米?面积是多少平方米? 2.pH=1.0的硫酸溶液的物质的量浓度是 A.0.2mol/L B.0.1mol/L C.0.09mol/L D.0.05mol/L2.pH=1.0的硫酸溶液的物质的量浓度是  A.0.2mol/L B.0.1mol/L C.0.09mol/L D.0.05mol/L 有一个抽屉长50厘米,宽40厘米,高12厘米.做这个抽屉至少需要多少平方分米的木板? 面积是4分之1平方分米的正方形周长是 多少分米 一个正方行的周长是25分之16米,它的面积是多少平方分米 c1驾驶证能开什么样的车?几座以下的客车?什么样子的货车可以开,最好有数据,能开的货车,开哪种车需要办从业资格证吗最好详细点啊 一个圆里最大的正方形的面积是10平方厘米,问圆的面积是多少? (4×10的四次方)×(3×10的八次方) 0.2mol/L HAC与0.2mol/L NaOH等体积混合后,求溶液的PH,基础很差……若0.2mol/L氨水与0.2mol/L盐酸 等体积混合,溶液的PH又该怎么计算呢?HAC(Ka = 1.76×10-5)……… 现有200mlH2SO4和NaSO4的混合溶液.其中,硫酸的物质的量浓度为1mol/L,硫酸钠的物质的量的量浓度为0.5mol/L.若要配置硫酸和硫酸钠的物质的量的浓度分别为2mol/L和0.2mol/L的溶液,应加入55.8%的H2SO4溶 3乘以10的4次方怎么打 一张办公桌有3个抽屉,每个抽屉长50厘米,宽30厘米,高10厘米,需要木板做这张桌的抽屉至少需要木板( )平方厘米,合( )平方米 20ml某氢氧化钠溶液用30ml 0.1mol/L的硫酸溶液继续滴定,耗去硫酸35ml中性.求氢氧化钠溶液的物质的量浓度要明白、清晰的过程、 请问100ml水里能溶解多少mg的阿司匹林肠溶片?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn