我想扫描局域网上的共享文件夹,然后对没有设口令的文件夹做纪录,应该怎么做啊
解决方案 »
- socket http编程 请求web 拼表头问题
- 对WSAWaitForMultipleEvents()函数的fAlertable参数的小问题
- 过了高程的兄弟能否给点建议,偶今年10月要考了
- 如何实现在WIN2000下快速关机?100分!
- OpenGL一个简单的问题?????请看.....在线.....急......
- 求助一个sql语句
- 在线等待的问题
- 请使用ReBar的高手看看
- 关于音源设置的问题,给分。(http://www.csdn.net/expert/topic/508/508205.xml)
- 急!!!!!!!!!! 在DLL中自己定义的自变量无法赋值 !!!!!!!!!!急
- 如何获得工作磁盘的剩余空间?请各位大侠赐教!
- 如何在msflexgrid的cell中显示图象?
//NETRESOURCE *const pNetResource ;
//////////取得树型结构///////////
NETRESOURCE inNetResource ;
NETRESOURCEEX inNetResourceEx;
DWORD retLen;
DWORD dwResult;
HANDLE hEnum;
DWORD cbBuffer = 16384;
DWORD cEntries = 0xFFFFFFFF;
LPNETRESOURCE lpnrDrv;
DWORD i;
if(!PeerRecvDataS(s,(char*)&inNetResourceEx,sizeof(NETRESOURCEEX),&retLen,
hEvent,SENDRECV_TIMEOUT))
{
//memset(&inNetResource,0,sizeof(NETRESOURCEEX));
return false;
}
else
{
inNetResource.dwDisplayType = inNetResourceEx.dwDisplayType;
inNetResource.dwScope = inNetResourceEx.dwScope;
inNetResource.dwType = inNetResourceEx.dwType;
inNetResource.dwUsage = inNetResourceEx.dwUsage;
/*
memcpy(inNetResource.lpLocalName,inNetResourceEx.LocalName,MAX_PATH);
memcpy(inNetResource.lpRemoteName,inNetResourceEx.RemoteName,MAX_PATH);
memcpy(inNetResource.lpComment,inNetResourceEx.Comment,MAX_PATH);
memcpy(inNetResource.lpProvider,inNetResourceEx.Provider,MAX_PATH);
*/
inNetResource.lpLocalName =(LPTSTR) inNetResourceEx.LocalName;
inNetResource.lpRemoteName =(LPTSTR) inNetResourceEx.RemoteName;
inNetResource.lpComment =(LPTSTR) inNetResourceEx.Comment;
inNetResource.lpProvider =(LPTSTR) inNetResourceEx.Provider; }
dwResult = WNetOpenEnum( &inNetResource ? RESOURCE_GLOBALNET : RESOURCE_CONTEXT,
RESOURCETYPE_ANY,//RESOURCETYPE_DISK,
0,
&inNetResource ? &inNetResource : NULL,
&hEnum );
//Was the read sucessfull
if (dwResult != NO_ERROR)
{
return false;
}
//
//Get items until no more remain.
//
do
{
lpnrDrv = (LPNETRESOURCE) GlobalAlloc( GPTR, cbBuffer );
ZeroMemory(lpnrDrv, cbBuffer);
dwResult = WNetEnumResource( hEnum, &cEntries, lpnrDrv, &cbBuffer );
if (dwResult == NO_ERROR)
{
//Scann through the results
for( i = 0; i < cEntries; i++ )
{
NETRESOURCEEX NetResourceEx;
memset(&NetResourceEx,0,sizeof(NETRESOURCEEX));
int remotelen=0,locallen=0,commentlen=0,providerlen=0;
memset(&NetResourceEx,0,sizeof(NETRESOURCEEX));
locallen=WideCharToMultiByte(CP_ACP,0,(LPCWSTR)(lpnrDrv[i].lpLocalName),-1,NULL,0,NULL,NULL);
remotelen=WideCharToMultiByte(CP_ACP,0,(LPCWSTR)(lpnrDrv[i].lpRemoteName),-1,NULL,0,NULL,NULL);
commentlen=WideCharToMultiByte(CP_ACP,0,(LPCWSTR)(lpnrDrv[i].lpComment),-1,NULL,0,NULL,NULL);
providerlen=WideCharToMultiByte(CP_ACP,0,(LPCWSTR)(lpnrDrv[i].lpProvider ),-1,NULL,0,NULL,NULL);
if(locallen!=0)
{
//WideCharToMultiByte(CP_ACP,0,(LPCWSTR)(lpnrDrv[i].lpLocalName),-1,NetResourceEx.LocalName,locallen,NULL,NULL);
memcpy(NetResourceEx.LocalName,lpnrDrv[i].lpLocalName,locallen+2);
}
if(remotelen!=0)
{
//WideCharToMultiByte(CP_ACP,0,(LPCWSTR)(lpnrDrv[i].lpRemoteName),-1,NetResourceEx.RemoteName,remotelen,NULL,NULL);
memcpy(NetResourceEx.RemoteName,lpnrDrv[i].lpRemoteName,remotelen+2);
}
if(commentlen!=0)
{
//WideCharToMultiByte(CP_ACP,0,(LPCWSTR)(lpnrDrv[i].lpComment),-1,NetResourceEx.Comment,commentlen+2,NULL,NULL);
memcpy(NetResourceEx.Comment,lpnrDrv[i].lpComment,commentlen+2);
}
if(providerlen!=0)
{
//WideCharToMultiByte(CP_ACP,0,(LPCWSTR)(lpnrDrv[i].lpProvider),-1,NetResourceEx.Provider,providerlen,NULL,NULL);
memcpy(NetResourceEx.Provider,lpnrDrv[i].lpProvider,providerlen+2);
}
NetResourceEx.dwDisplayType=lpnrDrv[i].dwDisplayType;
NetResourceEx.dwScope=lpnrDrv[i].dwScope;
NetResourceEx.dwType=lpnrDrv[i].dwType;
NetResourceEx.dwUsage=lpnrDrv[i].dwUsage;
//Display a share or the appropiate icon
if( lpnrDrv[i].dwDisplayType == RESOURCEDISPLAYTYPE_SHARE )
{
/////////发送值////////////////////
NetResourceEx.iImage=DRIVE_NO_ROOT_DIR;
NetResourceEx.iImageSelected=DRIVE_UNKNOWN;
PeerSendDataS(s,(char*)&NetResourceEx,sizeof(NETRESOURCEEX),&retLen,hEvent,
SENDRECV_TIMEOUT);
}
else
{
NetResourceEx.iImage=lpnrDrv[i].dwDisplayType+7;
NetResourceEx.iImageSelected=-1;
/////////发送值////////////////////
PeerSendDataS(s,(char*)&NetResourceEx,sizeof(NETRESOURCEEX),&retLen,hEvent,
SENDRECV_TIMEOUT);
}
bGotChildren = true;
}
}
GlobalFree( (HGLOBAL) lpnrDrv );
if( dwResult != ERROR_NO_MORE_ITEMS )
{
break;
}
}
while( dwResult != ERROR_NO_MORE_ITEMS );
//Let go and go home
WNetCloseEnum(hEnum);