首先在VC项目属性,开发依赖项里添加MPR.lib;然后,配置文件里填入以下信息。  

   //本地映射盘符
  MapDriver=T:

  //目标根目录
  //MapSharedPath=\\192.168.0.2\D$
  MapSharedPath=\\192.168.0.2\QuarkCall

  //目标机器用户名
  MapUser=administrator

  //目标机器密码
  MapPassword=administrator

这四个字段信息分别写入全局变量:LocalName,RemoteName,UserName,Password中。

以下是代码:

 int Redirect(const char *LocalName, const char *RemoteName, const char *UserName, const char *Password)
{
  int nResult = ;   NETRESOURCE nr;
  DWORD res;   char szUserName[],
  szPassword[],
  szLocalName[],
  szRemoteName[MAX_PATH];   strcpy(szUserName,UserName);
  strcpy(szPassword,Password);
  strcpy(szLocalName,LocalName);
  strcpy(szRemoteName,RemoteName);   nr.dwType = RESOURCETYPE_ANY;
  nr.lpLocalName = szLocalName;
  nr.lpRemoteName = szRemoteName;
  nr.lpProvider = NULL;   //if(NO_ERROR!=WNetCancelConnection2(szLocalName,0,false))
    // printf("断开失败");   res = WNetAddConnection2(&nr, szPassword, szUserName, CONNECT_UPDATE_PROFILE);   switch(res)
  {
    case NO_ERROR:
      g_DebugMsg.Sprintf("网络驱动器映射成功%s\n",RemoteName);
      nResult = ;
      break;
    case ERROR_BAD_PROFILE:
      g_DebugMsg.Sprintf("ERROR_BAD_PROFILE\n");
      break;
    case ERROR_CANNOT_OPEN_PROFILE:
      g_DebugMsg.Sprintf("ERROR_CANNOT_OPEN_PROFILE\n");
      break;
    case ERROR_DEVICE_IN_USE:
      g_DebugMsg.Sprintf("ERROR_DEVICE_IN_USE\n");
      break;
    case ERROR_EXTENDED_ERROR:
      g_DebugMsg.Sprintf("ERROR_EXTENDED_ERROR\n");
      break;
    case ERROR_NOT_CONNECTED:
      g_DebugMsg.Sprintf("ERROR_NOT_CONNECTED\n");
      break;
    case ERROR_OPEN_FILES:
      g_DebugMsg.Sprintf("ERROR_OPEN_FILES\n");
      break;
    default:
      g_DebugMsg.Sprintf("未知错误,可能需要帐号和密码认证,或者该主机或文件不存在\n");
      break;
  }
  return nResult;
}

WINDOWS-API:操作网络映射盘-WNetAddConnection2的更多相关文章

  1. 解决Windows服务无法访问网络映射盘的问题

    下载工具psexec 下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec 百度地址:https://pan.baid ...

  2. SQL Server 备份到网络盘网络映射盘

    declare @DBName nvarchar(max) declare @BakName nvarchar(max) --在这里修改数据库名称 select @DBName='[LFBMP.PO] ...

  3. ASP.NET访问网络映射盘&实现文件上传读取功能

    最近在改Web的时候,遇到一个问题,要跨机器访问共享文件夹,以实现文件正常上传下载功能. 要实现该功能,可以采用HTTP的方式,也可以使用网络映射磁盘的方式,今天主要给大家分享一下使用网络映射磁盘的方 ...

  4. C# 调用windows api 操作鼠标、键盘、窗体合集...更新中

    鼠标操作window窗体合集...更新中 1.根据句柄查找窗体 引自http://www.2cto.com/kf/201410/343342.html 使用SPY++工具获取窗体   首先打开spy+ ...

  5. 加载网络映射盘中的assembly失败的处理办法

    错误症状: 1.{"未能加载文件或程序集“file://*****”或它的某一个依赖项.不支持操作. (异常来自 HRESULT:0x80131515)":"file:/ ...

  6. 加载网络映射盘中的assembly失败

    我有一个网络映射盘,盘符是Z:.在Z盘下面,放了一个assembly,名为test.dll.然后,我在VS2010中建立了一个.NET 4.0的工程,程序中有下面一段代码: string dll = ...

  7. windows下操作linux虚拟机映射网络驱动器中文件提示chmod权限不足解决方案

    为了方便操作,linux虚拟机会通过windows下连接网络驱动器的方式共享自己的文件,对于前端来说,我想把gulp放在windows磁盘,操作虚拟机中的php文件,一来节省虚拟机磁盘大小,二来解决虚 ...

  8. Windows API 函数列表 附帮助手册

    所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...

  9. WINDOWS API 函数(超长,值得学习)

    一.隐藏和显示光标 函数: int ShowCursor ( BOOL bShow );  参数 bshow,为布尔型,bShow的值为False时隐藏光标,为True时显示光标:该函数的返回值为整型 ...

随机推荐

  1. LeetCode: 520 Detect Capital(easy)

    题目: Given a word, you need to judge whether the usage of capitals in it is right or not. We define t ...

  2. lightoj 1099【dijkstra/BFS】

    题意: 求 1-N 的第二长路,一条路可以重复走 if two or more shortest paths exist, the second-shortest path is the one wh ...

  3. 洛谷P4884 多少个1?(BSGS)

    传送门 模数好大……__int128好麻烦……而且BSGS第一次写有点写蒙了…… $11...1(N个1)\equiv k(mod m)$很难算,那么考虑转化一下 先把$11...1(N个1)$写成$ ...

  4. js对象 数组Array详解 (参照MDN官网:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)

    一:数组的创建方式: 1.采用直接量创建 var arr = [];//创建一个空数组 var arr2 = [1,2,3];//创建一个有三个元素的数组 2.采用构造函数创建 a.var arr1 ...

  5. iOS app支付宝接口调用的一点总结(补充支付宝SDK&Demo下载地址)

    由于app内需要用到支付功能,选择了当前最流行的支付宝进行支付.在进行内嵌支付宝功能开发时,被它狠狠的耍了一把. 根据支付宝开发文档,参考demo代码.将相关支付功能加到了自己的代码中.一些根据文档来 ...

  6. Spark 学习(三) maven 编译spark 源码

    spark 源码编译 scala 版本2.11.4 os:ubuntu 14.04 64位 memery 3G spark :1.1.0 下载源码后解压 1 准备环境,安装jdk和scala,具体参考 ...

  7. Shiro 权限管理框架

    一.什么是Shiro Apache Shiro是一个强大易用的java安全框架,提供认证.授权.加密和会话管理等功能 · 认证:用户身份识别,俗称“登录”: · 授权:访问控制 · 密码加密:保护或隐 ...

  8. Mysql 到 Hbase 数据如何实时同步,强大的 Streamsets 告诉你

    很多情况大数据集群需要获取业务数据,用于分析.通常有两种方式: 业务直接或间接写入的方式 业务的关系型数据库同步到大数据集群的方式 第一种可以是在业务中编写代码,将觉得需要发送的数据发送到消息队列,最 ...

  9. 字典转json

    1.字典转json -(NSString*)dictionaryToJson:(NSDictionary *)dic { NSError *parseError = nil; NSData *json ...

  10. 采集-telegraf

    1 介绍 Telegraf是一款Go语言编写的metrics收集.处理.聚合的代理其设计目标是较小的内存使用,通过插件来构建各种服务和第三方组件的metrics收集Telegraf由4个独立的插件驱动 ...