delphi实现映射和断开网络驱动器
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实现映射和断开网络驱动器的更多相关文章
- win8访问win7中的共享文件夹 映射网络驱动器
同一个局域网内,配置好了一台win7(假设计算机名为A)的共享文件夹,设置方法可以参考http://www.doudouxitong.com/guzhang/xitongjiqiao/2014/082 ...
- C#映射网络驱动器
using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential)] public class NetResource ...
- serv-u中如何映射网络驱动器
用一台机器作服务器,但硬盘空间不足,想通过影射网络驱动器来实现ftp的空间扩容! 如何映射网络硬盘或文件? 首先打开我的电脑--工具选项--映射网络驱动器: 如图示: 在文件夹输入映射路径:\\XXX ...
- CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器?
一.为什么要这么做? 最近在做Linux下的软件开发,但又想使用Windows下的编程工具“Source Insight”. 亲测有效. 要注意查看smb.conf.example,centos7的 ...
- [转]CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器?
CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器? 转自这里 一.为什么要这么做? 最近在做Linux下的软件开发,但又想使用Windows下的编程工具“Source Insi ...
- Windows映射网络驱动器提示错误
问题描述:Windows映射网络驱动器的时候,提示文件和打印机共享资源处于联机状态未对连接尝试检测到做出响应 解决方法:不同情况可能不一样,我的原因是,映射的Linux,防火墙处于开启状态,关闭了就可 ...
- windows 10的资源管理器不显示映射的网络驱动器怎么办?
最近在使用映射网络驱动器的时候出现一个奇怪的现象.事情源于我在资源管理器里面映射了来自多个不同账号的网络驱动器.使用的是win10系统.映射不同账号的网络驱动器是不允许的.于是只能删掉其他账号和凭证重 ...
- ASP.NET访问网络驱动器(映射磁盘)
也许很多朋友在做WEB项目的时候都会碰到这样一个需求: 当用户上传文件时,需要将上传的文件保存到另外一台专门的文件服务器. 要实现这样一个功能,有两种解决方案: 方案一.在文件服务器上新建一站点,用来 ...
- 在WIN7、WIN10操作系统用WebDAV映射网络驱动器需要的操作
如果WebDAV不是https的,win7默认是添加不上的,需要修改注册表使得WIN7同时支持http和https,默认只支持https,然后重启服务 某一服务器,配置好了WebDAV.用苹果电脑作客 ...
随机推荐
- 最新hadoop虚拟机安装教程(附带图文)
前两天看到有人留言问在什么情况下需要部署hadoop,我给的回答也很简单,就是在需要处理海量数据的时候才需要考虑部署hadoop.关于这个问题在很早之前的一篇分享文档也有说到这个问题,数据量少的完全发 ...
- 【jmeter】jmeter测试网站QPS
上一节中,我们了解了jmeter的一此主要元件,那么这些元件如何使用到性能测试中呢.这一节创建一个简单的测试计划来使用这些元件.该计划对应的测试需求. 1)测试目标网站是fnng.cnblogs.co ...
- Sql中判断"数据库"、"表"、"临时表"、"存储过程"和列"是否存在
--判断数据库是否存在 IF EXISTS (SELECT * FROM MASTER..sysdatabases WHERE NAME = '库名') PRINT 'exists ' else ...
- 快速接入PHP微信支付
微信支付是微信开发中坑最多的一个功能,本文旨在帮助有开发基础的人快速接入微信支付,如果要详细了解微信支付,请看微信支付的开发文档. 再说把开发文档搬到这里来就没必要了.想要快速跑通微信支付的可以继续查 ...
- springMVC学习(7)-springMVC校验
一.校验理解: 对于安全要求较高点建议在服务端进行校验. 控制层conroller:校验页面请求的参数的合法性.在服务端控制层conroller校验,不区分客户端类型(浏览器.手机客户端.远程调用) ...
- Parquet列式存储格式
Parquet是面向分析型业务的列式存储格式,由Twitter和Cloudera合作开发,2015年5月从Apache的孵化器里毕业成为Apache顶级项目,最新的版本是1.8.0. 列式存储 列式存 ...
- POJ 2706 Painter
Painter Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3157 Accepted: 1962 Descripti ...
- [UE4]移动设备贴图消失
pc版本是支持直接使用psd文件作为贴图文件,但移动设备就不支持了.
- 对于分类问题的神经网络最后一层的函数:sigmoid、softmax与损失函数
对于分类问题的神经网络最后一层的函数做如下知识点总结: sigmoid和softmax一般用作神经网络的最后一层做分类函数(备注:sigmoid也用作中间层做激活函数): 对于类别数量大于2的分类问题 ...
- js 下关于json的销毁和添加
var json={a:1,b:2} 现在给json添加个c,可以这样写 json.c=3或json["c"]=3 我删除一个属性 delete json.a alert(json ...