⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 遍立共享.txt

📁 搜索局域网中的共享资源 .rar
💻 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 + -