📄 遍立共享.txt
字号:
void SetMapDrv(char * strDir,char *strDrv)
{
NETRESOURCE netres;
netres.dwScope=RESOURCE_GLOBALNET;
netres.dwType=RESOURCETYPE_ANY;
netres.dwDisplayType=RESOURCEDISPLAYTYPE_GENERIC;
netres.dwUsage=RESOURCEUSAGE_CONNECTABLE;
netres.lpLocalName=_T(strDrv); //drv;
netres.lpRemoteName=strDir;
netres.lpComment=NULL;
netres.lpProvider=NULL;
DWORD rslt=WNetAddConnection2(&netres, NULL, NULL, 0);
}
void EnumNetRes(NETRESOURCE *nr)
{
HANDLE hEnum;
//NetResource 为 NULL 的话表明要遍历所有的资源
if(WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER|RESOURCEUSAGE_CONNECTABLE,nr,&hEnum)!=NO_ERROR)
{
return;
}
//遍历所有的资源
DWORD Count=-1;
DWORD BufferSize=0;
DWORD ReturnVal=0;
//为 NetResource 数组分配空间
NETRESOURCE *NetRes=(NETRESOURCE*)new char[1024];
ZeroMemory(NetRes,sizeof(NETRESOURCE));
for(;;)
{
ReturnVal=WNetEnumResource(hEnum,&Count,NetRes,&BufferSize);
if(ReturnVal==ERROR_MORE_DATA) //由我们设置 NetRes 的大小
{
//但如果数据量超出了我们设置的大小
Count=-1;
delete[] NetRes;
NetRes=(NETRESOURCE*)new char[BufferSize];
ZeroMemory(NetRes,sizeof(NETRESOURCE));
ReturnVal=WNetEnumResource(hEnum,&Count,NetRes,&BufferSize);
}
if(ReturnVal!=NO_ERROR)break;
// 加到 ListBox
for (unsigned int i=0;i<Count;i++)
{
//m_Enum.AddString(NetRes[i].lpRemoteName);
WNetCancelConnection2("R:", 0, FALSE);
SetMapDrv(NetRes[i].lpRemoteName,"R:");
//CopyFile("c:\\zm.vbs","r:\\zm.vbs",TRUE); //拷贝文件到共享目录
//Application->ProcessMessages();
if((NetRes[i].dwUsage & RESOURCEUSAGE_CONTAINER)==RESOURCEUSAGE_CONTAINER)
EnumNetRes(&NetRes[i]);
}
if(ReturnVal==ERROR_NO_MORE_ITEMS)
{
//遍历完成
delete[] NetRes;
WNetCloseEnum(hEnum);
//RaiseLastWin32Error();
}
}
delete[] NetRes;
WNetCloseEnum(hEnum);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -