type   TNetDiskMapper=class

  private
FNetResource: TNetResource;
FUserName,FPassWord:PWideChar;
public
constructor Create(DriveName,ShareURI,UserName,Password:PWideChar);
destructor Destory();
function ConnectDiskMap:boolean;
function disConnectDiskMap:boolean;
end; var NetDiskMap: TNetDiskMapper; { TNetDiskMapper } constructor TNetDiskMapper.Create(DriveName, ShareURI, UserName,
Password: PWideChar);
begin
FNetResource.dwType := RESOURCETYPE_DISK{磁盘资源};
FNetResource.lpLocalName :=driveName { 指定本地设备 };
FNetResource.lpRemoteName := PChar(ShareURI) { 指定远程网络名 };
FNetResource.lpProvider := nil { 指定提供网络资源的供应商。如为空,则表示供应商未知。 };
FUserName:=UserName { 远程资源的用户名 };
FPassword:=Password { 远程资源的口令 };
end; function TNetDiskMapper.ConnectDiskMap: boolean;
begin

{ WNetAddConnection2 的参数说明:

dwFlags标志位用于指定登录时是否重新连接(0时表示不重新连接,CCONNECT_UPDATE_PROFILE登录时重新连接)。
}

   result:=false;
case WNetAddConnection2(FNetResource,FPassword,FUserName,CONNECT_UPDATE_PROFILE) of
NO_ERROR:begin result:=true; ShowMessage('映射成功') ; end;
ERROR_ACCESS_DENIED: showmessage('Access is denied.');
ERROR_ALREADY_ASSIGNED:ShowMessage('The device specified in the lpLocalName parameter is already connected.');
ERROR_BAD_DEV_TYPE: ShowMessage('The device type and the resource type do not match.');
ERROR_BAD_DEVICE: ShowMessage('The value specified in lpLocalName is invalid');
ERROR_BAD_NET_NAME: ShowMessage('The value specified in the lpRemoteName parameter is not valid or cannot be located.');
ERROR_BAD_PROFILE : ShowMessage(' The user profile is in an incorrect format.') ;
ERROR_CANNOT_OPEN_PROFILE : ShowMessage(' The system is unable to open the user profile to process persistent connections. ');
ERROR_DEVICE_ALREADY_REMEMBERED : ShowMessage('An entry for the device specified in lpLocalName is already in the user profile.') ;
ERROR_EXTENDED_ERROR :ShowMessage('A network-specific error occurred. To get a description of the error, use the WNetGetLastError function. ');
ERROR_INVALID_PASSWORD:ShowMessage(' The specified password is invalid. ');
ERROR_NO_NET_OR_BAD_PATH:ShowMessage(' The operation cannot be performed because either a network component is not started or the specified name cannot be used.');
ERROR_NO_NETWORK:ShowMessage(' The network is not present. ');
else
ShowMessage('其他意外终止!');
end;
end; destructor TNetDiskMapper.Destory;
begin
disConnectDiskMap;
end; function TNetDiskMapper.disConnectDiskMap: boolean;
begin
if NO_ERROR= WNetCancelConnection2(FNetResource.lpLocalName,CONNECT_UPDATE_PROFILE,True) then
begin
result:=true;
end
else
result:=false;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
//映射网络驱动器
NetDiskMap:=TNetDiskMapper.Create('Z:','\\127.0.0.1\2016年安规调考',nil,nil);
showmessage(booltostr(NetDiskMap.ConnectDiskMap,true));
end; procedure TForm1.Button2Click(Sender: TObject);
begin
//断开网络驱动器 if assigned(NetDiskMap) and ( NetDiskMap<>nil) then
showmessage(booltostr(NetDiskMap.disConnectDiskMap,true));
end;

delphi实现映射和断开网络驱动器的更多相关文章

  1. win8访问win7中的共享文件夹 映射网络驱动器

    同一个局域网内,配置好了一台win7(假设计算机名为A)的共享文件夹,设置方法可以参考http://www.doudouxitong.com/guzhang/xitongjiqiao/2014/082 ...

  2. C#映射网络驱动器

    using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential)] public class NetResource ...

  3. serv-u中如何映射网络驱动器

    用一台机器作服务器,但硬盘空间不足,想通过影射网络驱动器来实现ftp的空间扩容! 如何映射网络硬盘或文件? 首先打开我的电脑--工具选项--映射网络驱动器: 如图示: 在文件夹输入映射路径:\\XXX ...

  4. CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器?

    一.为什么要这么做? 最近在做Linux下的软件开发,但又想使用Windows下的编程工具“Source Insight”. 亲测有效.  要注意查看smb.conf.example,centos7的 ...

  5. [转]CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器?

    CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器? 转自这里 一.为什么要这么做? 最近在做Linux下的软件开发,但又想使用Windows下的编程工具“Source Insi ...

  6. Windows映射网络驱动器提示错误

    问题描述:Windows映射网络驱动器的时候,提示文件和打印机共享资源处于联机状态未对连接尝试检测到做出响应 解决方法:不同情况可能不一样,我的原因是,映射的Linux,防火墙处于开启状态,关闭了就可 ...

  7. windows 10的资源管理器不显示映射的网络驱动器怎么办?

    最近在使用映射网络驱动器的时候出现一个奇怪的现象.事情源于我在资源管理器里面映射了来自多个不同账号的网络驱动器.使用的是win10系统.映射不同账号的网络驱动器是不允许的.于是只能删掉其他账号和凭证重 ...

  8. ASP.NET访问网络驱动器(映射磁盘)

    也许很多朋友在做WEB项目的时候都会碰到这样一个需求: 当用户上传文件时,需要将上传的文件保存到另外一台专门的文件服务器. 要实现这样一个功能,有两种解决方案: 方案一.在文件服务器上新建一站点,用来 ...

  9. 在WIN7、WIN10操作系统用WebDAV映射网络驱动器需要的操作

    如果WebDAV不是https的,win7默认是添加不上的,需要修改注册表使得WIN7同时支持http和https,默认只支持https,然后重启服务 某一服务器,配置好了WebDAV.用苹果电脑作客 ...

随机推荐

  1. x86 openwrt虚拟路由代理上网

    一.代理服务器设置 1.下载代理软件CCProxy 6.8 Build 2.设置如下 二.x86 路由设置 1.在/etc目录下编辑profile http_proxy= https_proxy= f ...

  2. Mac 下 IDEA 中 SpringBoot 如何利用 DevTool 开启热部署

    一.首先 pom.xml 中  依赖 和 构建 部分 二.IDEA 配置 注意这一步一定不要改错地方,认准 IntelliJ IDEA -> Preferences… 三.退出 IDEA 编辑器 ...

  3. Android 对话框(Dialog)大全

    转自: http://www.cnblogs.com/salam/archive/2010/11/15/1877512.html Activities提供了一种方便管理的创建.保存.回复的对话框机制, ...

  4. bzoj4928: 第二题

    Description 对于一棵有根树,定义一个点u的k-子树为u的子树中距离u不超过k的部分. 注意,假如u的子树中不存在距离u为k的点,则u的k-子树是不存在的. 定义两棵子树是相同的,当且仅当不 ...

  5. python学习笔记--smtp模块的使用及常见错误处理

    SMTPAuthenticationError: (535, 'Error: \xc7\xeb\xca\xb9\xd3\xc3\xca\xda\xc8\xa8\xc2\xeb\xb5\xc7\xc2\ ...

  6. POJ 2139 Six Degrees of Cowvin Bacon (floyd)

    Six Degrees of Cowvin Bacon Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Ja ...

  7. Rest架构以及什么是Restful

    关于Rest的内容,在网上开了好多文章~ 下面我就把一些关于Rest经典的链接发出来,大家可以参考一下~ 1.什么是Rest和Restful? 怎样用通俗的语言解释什么叫 REST,以及什么是 RES ...

  8. Spark SQL 编程

    Spark SQL的依赖 Spark SQL的入口:SQLContext 官方网站参考 https://spark.apache.org/docs/1.6.2/sql-programming-guid ...

  9. orm 小结

     1. 销售注册,登录系统  - 用户表  2.销售添加客户信息,成为销售的私户  - 客户表    3. 销售固定时间跟进客户  - 跟进记录表 4. 客户报名  - 报名记录表  - 班级表(必须 ...

  10. css (具体代码看笔记本)

    参考:https://www.cnblogs.com/liwenzhou/p/7999532.html  1. CSS语法   选择器 {属性1:值1;...;}  2. CSS导入方式   1. 行 ...