方法:如何获取远程PC所有共享资源-创新互联

转载请注明来源:http://www.cnblogs.com/xuesongshu/方法:如何获取远程PC所有共享资
源

在一网热心网友的帮助下我解决的NetShareEnum返回NO_ACCESSS_DENIED(5)的问题。可惜网上相关资料实在找不着。我决定把我的方法分享给更多的网友们,希望能帮助到更多的人。

创新互联公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供成都网站设计、成都网站建设、外贸网站建设、成都网页设计、小程序开发、成都网站开发、成都网站制作、成都软件开发、APP应用开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!

SHARE_INFO_2、SHARE_INFO_502、SHARE_INFO_503适合于遍历1个共享资源里所有目录。如果用它们获取远程PC有多少共享资源,它就返回5。SHARE_INFO_0、SHARE_INFO_1才适合获取远程PC有多少共享资源。看到这一点,想必网友们已经想到方法了。我的代码如下:

void EnumShareResources() { //PSHARE_INFO_1 pShareTmp=NULL,pShareBuffer=NULL; PSHARE_INFO_0 pShareTmp=NULL,pShareBuffer=NULL; NET_API_STATUS netApiStat=ERROR_SUCCESS; DWORD dwEr=0,dwTr=0,dwResume=0,i=0,dwEnumOpenStat=0,dwEnumEnumStat=0; char* pcHost=(char*)calloc(64,sizeof(char)); LPWSTR szWideIp=(LPWSTR)calloc(32,sizeof(WCHAR)); BOOL bFind=FALSE; sprintf(pcHost,"%d.%d.%d.%d",192,168,10,183); //GetHostNameByIp(pcHost); //i=MultiByteToWideChar(CP_ACP,0,pcIp,-1,NULL,0); MultiByteToWideChar(CP_ACP,0,pcHost,-1,szWideIp,64); memcpy(pcHost,szWideIp,64); do { //netApiStat=NetShareEnum(pcHost,1,(LPBYTE*)&pShareBuffer,-1,&dwEr,&dwTr,&dwResume); netApiStat=NetShareEnum(pcHost,0,(LPBYTE*)&pShareBuffer,-1,&dwEr,&dwTr,&dwResume); if (netApiStat==ERROR_MORE_DATA||netApiStat==ERROR_SUCCESS) { pShareTmp=pShareBuffer; for (i=0;ishi1_netname,pShareTmp->shi1_type,pShareTmp->shi1_remark); wprintf(L"%20s",pShareTmp->shi0_netname); printf(" "); pShareTmp++; } NetApiBufferFree(pShareTmp); } } while (netApiStat==ERROR_MORE_DATA); }

被注释部分使用的是SHARE_INFO_1。


本文名称:方法:如何获取远程PC所有共享资源-创新互联
URL标题:http://azwzsj.com/article/icsdh.html