WINDOWS-API:操作网络映射盘-WNetAddConnection2
首先在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的更多相关文章
- 解决Windows服务无法访问网络映射盘的问题
下载工具psexec 下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec 百度地址:https://pan.baid ...
- SQL Server 备份到网络盘网络映射盘
declare @DBName nvarchar(max) declare @BakName nvarchar(max) --在这里修改数据库名称 select @DBName='[LFBMP.PO] ...
- ASP.NET访问网络映射盘&实现文件上传读取功能
最近在改Web的时候,遇到一个问题,要跨机器访问共享文件夹,以实现文件正常上传下载功能. 要实现该功能,可以采用HTTP的方式,也可以使用网络映射磁盘的方式,今天主要给大家分享一下使用网络映射磁盘的方 ...
- C# 调用windows api 操作鼠标、键盘、窗体合集...更新中
鼠标操作window窗体合集...更新中 1.根据句柄查找窗体 引自http://www.2cto.com/kf/201410/343342.html 使用SPY++工具获取窗体 首先打开spy+ ...
- 加载网络映射盘中的assembly失败的处理办法
错误症状: 1.{"未能加载文件或程序集“file://*****”或它的某一个依赖项.不支持操作. (异常来自 HRESULT:0x80131515)":"file:/ ...
- 加载网络映射盘中的assembly失败
我有一个网络映射盘,盘符是Z:.在Z盘下面,放了一个assembly,名为test.dll.然后,我在VS2010中建立了一个.NET 4.0的工程,程序中有下面一段代码: string dll = ...
- windows下操作linux虚拟机映射网络驱动器中文件提示chmod权限不足解决方案
为了方便操作,linux虚拟机会通过windows下连接网络驱动器的方式共享自己的文件,对于前端来说,我想把gulp放在windows磁盘,操作虚拟机中的php文件,一来节省虚拟机磁盘大小,二来解决虚 ...
- Windows API 函数列表 附帮助手册
所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...
- WINDOWS API 函数(超长,值得学习)
一.隐藏和显示光标 函数: int ShowCursor ( BOOL bShow ); 参数 bshow,为布尔型,bShow的值为False时隐藏光标,为True时显示光标:该函数的返回值为整型 ...
随机推荐
- SPOJ PHT【二分】+SPOJ INUM【最小/大值重复】
BC 两道其实都是水 没有完整地想好直接就码出事情.wa了一次以后要找bug,找完要把思路理的非常清楚 SPOJ PHT[二分] #include<bits/stdc++.h> using ...
- CodeForces717C 【数学】
题意: 给你n个数既表示a类的值也表示b类的值,然后计算a和b类两两搭配相乘相加,使得答案最小: 思路: 显而易见的方案是最小乘最大,次小乘次大,然后依次下去.. 可以那个特例证明这个是对的 #inc ...
- iOS 更改状态栏、导航栏颜色的几种方法
ios上状态栏 就是指的最上面的20像素高的部分状态栏分前后两部分,要分清这两个概念,后面会用到: 前景部分:就是指的显示电池.时间等部分:背景部分:就是显示黑色或者图片的背景部分: (一)设置sta ...
- [題解]luogu_P1613跑路(最短路/倍增)
首先要知道不能跑最短路,因為只有整2^k才能一秒到達,和倍增有關 所以我們想知道任意兩點間能否存在一條2^k長度的路徑,數據很小,可以考慮floyd 把倍增和floyd結合起來考慮發現如果i到k,k到 ...
- Tinghua Data Mining 5
ID3 ID3算法倾向于分的很细的变量 C4.5加入分母为惩罚量
- Mass Change Queries Codeforces - 911G
https://codeforces.com/contest/911/problem/G 没想到线段树合并还能这么搞.. 对每个权值建一个线段树(动态开点),如果权值为k的线段树上第i位为1,那么表示 ...
- 洛谷 P1031 均分纸牌
P1031 均分纸牌 这道题告诉我们,对于实在想不出算法的题,可以大胆按照直觉用贪心,而且在考试中永远不要试着去证明贪心算法,因为非常难证,会浪费大量时间. (这就是你们都不去证的理由??) 这道题贪 ...
- mybatis实现简单的增删查改
接触一个新技术,首先去了解它的一些基本概念,这项技术用在什么方面的.这样学习起来,方向性也会更强一些.我对于mybatis的理解是,它是一个封装了JDBC的java框架.所能实现的功能是对数据库进行增 ...
- java如果去除中间空格,就不能用trim()这个方法了
public class Hello { public static void main(String[] args){ String text = "12v 4 6 5 55"; ...
- session是什么时候创建的
总结:session不是一打开网站就会立刻建立.它的建立需要基于下面两个条件中的任意一个: 1:在servlet中手动调用 HttpSession session = request.getSessi ...