首先在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. sql添加表

    IF EXISTS(SELECT * FROM sysobjects WHERE name='learnRecord') DROP TABLE learnRecord GO CREATE TABLE ...

  2. OpenCV第一课

    1.OpenCV下载地址:http://opencv.org/downloads.html 因为本人电脑装的是vs2010,所以下载的是opencv-2.4.11.exe(vc10.vc11.vc12 ...

  3. Lightoj1013【DP_LCS】

    题意: 给你两个字符串,让你求一个最短字符串,其中存在给出串的种类: 求这个字符串的长度和种类: 思路: //dp[i,j,k]表示前i个字符,包含s1串前j个字母,包含s2串前k个字符时的方案数. ...

  4. grunt和seajs入门之--提取依赖、合并、压缩js文件

    一.安装grunt: npm install -g grunt-cli //安装 npm install grunt –save-dev //安装Grunt最新版本到项目目录中,并将其添加到devDe ...

  5. Spring Cloud:使用Ribbon实现负载均衡详解(上)

    1. 什么是 Ribbon? Spring Cloud Ribbon 是一套实现客户端负载均衡的工具.注意是客户端,当然也有服务端的负载均衡工具,我们后面再介绍.可以认为 Ribbon 就是一个负载均 ...

  6. A. Office Keys ( Codeforces Round #424 (Div. 1, rated, based on VK Cup Finals) )

    #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm& ...

  7. 浅谈H5技术

    1.什么是H5:HTML5将成为HTML.XHTML以及HTML  DOM的新标准.目前仍处于完善之中.然而,大部分现代浏览器已经具备了某些HTML5支持. 2.背景:HTML5 是 W3C 与 WH ...

  8. HDU 1875(最小生成树)

    #include <iostream> #include <algorithm> #include <cstdio> #include <cmath> ...

  9. Codeforces Round #547 (Div. 3) A.Game 23

    链接:https://codeforces.com/contest/1141/problem/A 题意: 给n和m,有两种操作:将n×2 或 n×3,求最少的乘法次数由n得到m. 不能得到时为-1. ...

  10. Codeforces Round #202 (Div. 1) A. Mafia 推公式 + 二分答案

    http://codeforces.com/problemset/problem/348/A A. Mafia time limit per test 2 seconds memory limit p ...