const bool Manager::NetShareFoler( const string & strIPDir, const string & strUser, const string & strPwd)
{
if (::PathFileExistsA(strIPDir.c_str())){
return true ;
}
//initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)){
CLog::Instance()->LOG_WriteLine(LOG_INFO_ERROR,
"%s: 获取化 MFC 控件失败" , __FUNCTION__);
return false ;
}
DWORD dwResult;
NETRESOURCE nr;
memset (&nr, 0, sizeof (nr));
nr.dwScope=RESOURCE_CONNECTED;
nr.dwType=RESOURCETYPE_ANY;
nr.dwDisplayType=RESOURCEDISPLAYTYPE_GENERIC;
nr.dwUsage=RESOURCEUSAGE_CONNECTABLE;
//nr.lpRemoteName = L"\\\\192.168.1.110\\test";
CString cstr = CA2W(strIPDir.c_str());
nr.lpRemoteName = cstr.GetBuffer();
dwResult = WNetAddConnection2(&nr, CA2W(strPwd.c_str()), CA2W(strUser.c_str()), CONNECT_UPDATE_PROFILE);
if (dwResult == ERROR_ALREADY_ASSIGNED){
return false ;
}
else if (dwResult == ERROR_DEVICE_ALREADY_REMEMBERED){
return false ;
}
else if (dwResult != NO_ERROR){
return false ;
}
//连接成功 可以像操作本地磁盘一样操作共享文件夹
//::CopyFile();//直接使用此指令将文件得到相应的网络目录即可
cstr.ReleaseBuffer();
return true ;
}
|