选择显示字体大小

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


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

一、 基本原理

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

.net函数主要有:.netaddconnection , .netaddconnection2 , .netaddconnection3 , .netcancelconnection2等。本文主要用.netaddconnection2,.netcancelconnection2函数,下面简单介绍一下,关于.net函数更详细的资料请参考delphi的连机文档和microsoft api函数说。

.netaddconnection2在windows.pas中的函数原型如下:

function .netaddconnection2(var l.netresource: .netresource;lppassword, lpusername: pchar; dwflags: dword): dword; stdcall;为调用此函数必须填写l.netresouce结构,此结构的定义为: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 : 指定提供网络资源的供应商。如为空,则表示供应商未知。.netaddconnection2函数的lppassword为远程资源的口令。 lpusername为远程资源的用户名。dwflags标志位用于指定登录时是否重新连接(0时表示不重新连接,cconnect_update_profile登录时重新连接)。.netcancelconnection2在windows.pas中的函数原型如下:function .netcancelconnection2(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 : .netresource;begin with.netsource do begin dwtype := resourcetype_any;lplocalname := x:; // 将远程资源映射到此驱动器lpremotename := \\hqserver\sys; // 远程网络资源lpprovider := ; // 必须赋值,如为空则使用lpremotename的值。 end; .netaddconnection2.netsource, password, guest,  //用户名为guest,口令为passwordconnect_update_profile); //下次登录时重新连接//此时在windows资源管理器中可看到网络驱动器x:if messagedlg(are you sure to disconnect drive ?,mtconfirmation, [mbyes, mbno], 0) = mryes then //不管是否有文件打开,断开网络驱动器x: .netcancelconnection2( x:, connect_update_profile, true); end;end;
本程序在delphi3.0,4.0、pwindows95、novell.netware 3.12下编译运行通过。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons