WnetAddConnection2 网络函数


大伙们住运用delphi 软件编写网络应用程序软件代码时可能会遇到此样1个问题和疑问:住1个由Windows   NT及Novell   Netware组成地网络环境中,应用程序软件代码需需要使用Novell网顶地某些数据,假如每次都手工住Windows资源管理器中映射,断开网络驱动器,非仅繁琐而且显得非够专业。本文将介绍住delphi 软件中使用Windows32   API函数function解决此1问题和疑问。    
  1、   基本原理  
  住Microsoft   Windows环境下,应用程序软件代码使用Windows网络函数function(WNet)来实现写出来网络功能而非用关心网络地供应商及具体实现写出来。原因是WNet函数function就为独立于网络地。    
  Wnet函数function主需要有:WnetAddConnection   ,   WnetAddConnection2   ,   WnetAddConnection3   ,   WnetCancelConnection2等。本文主需要用WnetAddConnection2,WnetCancelConnection2函数function,下面简单介绍1下,关于WNet函数function更详细地资料请参考delphi 软件地连机文档及Microsoft   API函数function说。    
   
  WNetAddConnection2住Windows.pas中地函数function原型如下:    
   
   
  function   WNetAddConnection2  
  (var   lpNetResource:   TNetResource;  
  lpPassword,   lpUserName:   PChar;   dwFlags:    
  DWORD):   DWORD;   stdcall;  
   
  为调用此函数function必须填写  
  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函数function地  
  lpPassword为远程资源地口令。  
    lpUserName为远程资源地用户名。  
  dwFlags标志位用于指定登录时就为否重新连接  
  (0时表示非重新连接,CCONNECT_UPDATE_  
  PROFILE登录时重新连接)。  
  WnetCancelConnection2住Windows.pas  
  中地函数function原型如下:  
  function   WNetCancelConnection2  
  (lpName:   PChar;   dwFlags:   DWORD;   fForce:   BOOL):    
  DWORD;   stdcall;  
  lpName   :   需要断开地       掏缱试椿虮镜刂囟ㄏ蚯鳌?dwFlags   :   含义同顶。  
  fForce   :   True表示非管就为否有文件打开,  
  强制性断开网络驱动器;False   表示如有文  
    件打开则函数function运行失败。  
   
  二、实例  
  住delphi 软件地File菜单下选择New   Application,住Form1顶放置1个Button,住Button1地Click事件中键入如下编程代码(Code):    
   
  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;  

转自:http://hackdiy.com/I-10073954.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM