/******************'********************************************* *函 数 名: ConnectShareDir *参 数: TCHAR tcUserName[], 远程登录用户名 TCHAR tcUserPwd[], 远程登录密码 TCHAR szShareSource[] 共享文件夹名称 *返回值: bool 成功返回true 失败放回false *函数功能: 建立本地远程登录映射 *****************************************************************/ bool ConnectShareDir(TCHAR tcUserName[], TCHAR tcUserPwd[], TCHAR szShareSource[]); bool ConnectShareDir(TCHAR szUserName[], TCHAR szUserPwd[], TCHAR szShareSource[]) { bool bRes = true; NETRESOURCE net_Resource; net_Resource.dwDisplayType = RESOURCEDISPLAYTYPE_DIRECTORY; net_Resource.dwScope = RESOURCE_CONNECTED; net_Resource.dwType = RESOURCETYPE_ANY; net_Resource.dwUsage = 0; net_Resource.lpComment = TEXT(""); net_Resource.lpLocalName = TEXT("C:"); //映射成本地驱动器C: net_Resource.lpProvider= NULL; net_Resource.lpRemoteName = szShareSource;//TEXT("\\\\172.230.240.111\\ShareDir"); // \\servername\共享资源名 DWORD dwFlags = CONNECT_UPDATE_PROFILE; DWORD dw = WNetAddConnection2(&net_Resource, szUserPwd, szUserName, dwFlags); switch(dw) { case ERROR_SUCCESS: ShellExecute(NULL, TEXT("open"), TEXT("C:"), NULL, NULL, SW_HIDE); OutputDebugString(_T("连接共享主机 ERROR_SUCCESS\r\n")); bRes = true; break; case ERROR_ACCESS_DENIED: OutputDebugString(_T("连接共享主机没有权访问 ERROR_ACCESS_DENIED\r\n")); bRes = false; break; case ERROR_ALREADY_ASSIGNED: ShellExecute(NULL, TEXT("open"), TEXT("C:"), NULL, NULL, SW_HIDE); OutputDebugString(_T("连接共享主机已经存在 ERROR_ALREADY_ASSIGNED\r\n")); bRes = true; break; case ERROR_INVALID_ADDRESS: OutputDebugString(_T("连接共享主机IP地址无效 ERROR_INVALID_ADDRESS\r\n")); bRes = false; break; case ERROR_NO_NETWORK: OutputDebugString(_T("连接共享主机网络不可达 ERROR_NO_NETWORK\r\n")); bRes = false; break; default: bRes = false; } return bRes; }
访问时
CFile file; file.Open(_T("\\\\172.230.240.111\\ShareDir\\13_1.jpg"), CFile::modeReadWrite||CFile::modeCreate); DWORD dwError = GetLastError(); file.Close();本地测试可能存在找不到网络路径 dwError为53的错误