首先在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. SPOJ PHT【二分】+SPOJ INUM【最小/大值重复】

    BC 两道其实都是水 没有完整地想好直接就码出事情.wa了一次以后要找bug,找完要把思路理的非常清楚 SPOJ PHT[二分] #include<bits/stdc++.h> using ...

  2. CodeForces717C 【数学】

    题意: 给你n个数既表示a类的值也表示b类的值,然后计算a和b类两两搭配相乘相加,使得答案最小: 思路: 显而易见的方案是最小乘最大,次小乘次大,然后依次下去.. 可以那个特例证明这个是对的 #inc ...

  3. iOS 更改状态栏、导航栏颜色的几种方法

    ios上状态栏 就是指的最上面的20像素高的部分状态栏分前后两部分,要分清这两个概念,后面会用到: 前景部分:就是指的显示电池.时间等部分:背景部分:就是显示黑色或者图片的背景部分: (一)设置sta ...

  4. [題解]luogu_P1613跑路(最短路/倍增)

    首先要知道不能跑最短路,因為只有整2^k才能一秒到達,和倍增有關 所以我們想知道任意兩點間能否存在一條2^k長度的路徑,數據很小,可以考慮floyd 把倍增和floyd結合起來考慮發現如果i到k,k到 ...

  5. Tinghua Data Mining 5

    ID3 ID3算法倾向于分的很细的变量 C4.5加入分母为惩罚量

  6. Mass Change Queries Codeforces - 911G

    https://codeforces.com/contest/911/problem/G 没想到线段树合并还能这么搞.. 对每个权值建一个线段树(动态开点),如果权值为k的线段树上第i位为1,那么表示 ...

  7. 洛谷 P1031 均分纸牌

    P1031 均分纸牌 这道题告诉我们,对于实在想不出算法的题,可以大胆按照直觉用贪心,而且在考试中永远不要试着去证明贪心算法,因为非常难证,会浪费大量时间. (这就是你们都不去证的理由??) 这道题贪 ...

  8. mybatis实现简单的增删查改

    接触一个新技术,首先去了解它的一些基本概念,这项技术用在什么方面的.这样学习起来,方向性也会更强一些.我对于mybatis的理解是,它是一个封装了JDBC的java框架.所能实现的功能是对数据库进行增 ...

  9. java如果去除中间空格,就不能用trim()这个方法了

    public class Hello { public static void main(String[] args){ String text = "12v 4 6 5 55"; ...

  10. session是什么时候创建的

    总结:session不是一打开网站就会立刻建立.它的建立需要基于下面两个条件中的任意一个: 1:在servlet中手动调用 HttpSession session = request.getSessi ...