CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

有没有那位大虾有关于搜索局域网共享资源的代码?!

楼主jx_lin()2005-06-02 12:22:47 在 VC/MFC / 网络编程 提问

有没有那位大虾有关于搜索局域网共享资源的代码,最好是完整的,我想参考以下,谢谢! 问题点数:60、回复次数:6Top

1 楼laiyiling(陌生人[MVP])回复于 2005-06-02 12:32:22 得分 0

http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=198095Top

2 楼laiyiling(陌生人[MVP])回复于 2005-06-02 12:36:29 得分 60

BOOL   WINAPI   EnumerateFunc(HWND   hwnd,    
                                                      HDC   hdc,    
                                                      LPNETRESOURCE   lpnr)  
  {    
      DWORD   dwResult,   dwResultEnum;  
      HANDLE   hEnum;  
      DWORD   cbBuffer   =   16384;             //   16K   is   a   good   size  
      DWORD   cEntries   =   -1;                   //   enumerate   all   possible   entries  
      LPNETRESOURCE   lpnrLocal;           //   pointer   to   enumerated   structures  
      DWORD   i;  
      //  
      //   Call   the   WNetOpenEnum   function   to   begin   the   enumeration.  
      //  
      dwResult   =   WNetOpenEnum(RESOURCE_GLOBALNET,   //   all   network   resources  
                                                      RESOURCETYPE_ANY,       //   all   resources  
                                                      0,                 //   enumerate   all   resources  
                                                      lpnr,           //   NULL   first   time   the   function   is   called  
                                                      &hEnum);     //   handle   to   the   resource  
   
      if   (dwResult   !=   NO_ERROR)  
      {      
          //  
          //   Process   errors   with   an   application-defined   error   handler.  
          //  
          NetErrorHandler(hwnd,   dwResult,   (LPSTR)"WNetOpenEnum");  
          return   FALSE;  
      }  
      //  
      //   Call   the   GlobalAlloc   function   to   allocate   resources.  
      //  
      lpnrLocal   =   (LPNETRESOURCE)   GlobalAlloc(GPTR,   cbBuffer);  
       
      do  
      {      
          //  
          //   Initialize   the   buffer.  
          //  
          ZeroMemory(lpnrLocal,   cbBuffer);  
          //  
          //   Call   the   WNetEnumResource   function   to   continue  
          //     the   enumeration.  
          //  
          dwResultEnum   =   WNetEnumResource(hEnum,             //   resource   handle  
                                                                          &cEntries,     //   defined   locally   as   -1  
                                                                          lpnrLocal,     //   LPNETRESOURCE  
                                                                          &cbBuffer);   //   buffer   size  
          //  
          //   If   the   call   succeeds,   loop   through   the   structures.  
          //  
          if   (dwResultEnum   ==   NO_ERROR)  
          {  
              for(i   =   0;   i   <   cEntries;   i++)  
              {  
                  //   Call   an   application-defined   function   to  
                  //     display   the   contents   of   the   NETRESOURCE   structures.  
                  //  
                  DisplayStruct(hdc,   &lpnrLocal[i]);  
   
                  //   If   the   NETRESOURCE   structure   represents   a   container   resource,    
                  //     call   the   EnumerateFunc   function   recursively.  
   
                  if(RESOURCEUSAGE_CONTAINER   ==   (lpnrLocal[i].dwUsage  
                                                                                &   RESOURCEUSAGE_CONTAINER))  
                      if(!EnumerateFunc(hwnd,   hdc,   &lpnrLocal[i]))  
                          TextOut(hdc,   10,   10,   "EnumerateFunc   returned   FALSE.",   29);  
              }  
          }  
          //   Process   errors.  
          //  
          else   if   (dwResultEnum   !=   ERROR_NO_MORE_ITEMS)  
          {  
              NetErrorHandler(hwnd,   dwResultEnum,   (LPSTR)"WNetEnumResource");  
              break;  
          }  
      }  
      //  
      //   End   do.  
      //  
      while(dwResultEnum   !=   ERROR_NO_MORE_ITEMS);  
      //  
      //   Call   the   GlobalFree   function   to   free   the   memory.  
      //  
      GlobalFree((HGLOBAL)lpnrLocal);  
      //  
      //   Call   WNetCloseEnum   to   end   the   enumeration.  
      //  
      dwResult   =   WNetCloseEnum(hEnum);  
       
      if(dwResult   !=   NO_ERROR)  
      {    
          //  
          //   Process   errors.  
          //  
          NetErrorHandler(hwnd,   dwResult,   (LPSTR)"WNetCloseEnum");  
          return   FALSE;  
      }  
   
      return   TRUE;  
  }  
  Top

3 楼jx_lin()回复于 2005-06-02 18:00:54 得分 0

有没有完整一点的,一个工程的,或是有完整头文件,可以编译的,谢谢!Top

4 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-06-02 21:57:59 得分 0

大部分代码都出来了,自己添加一下就差不多了Top

5 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-06-02 21:58:18 得分 0

对应的h,lib库文件等都可以查一下msdnTop

6 楼jx_lin()回复于 2005-06-04 11:05:46 得分 0

我运行的时候,碰到几个问题,一是传入的hwnd   在SDK环境下怎么获得,用getwindow()不行;我用NULL替代,出来的基本上都是NULL,没有什么实质的东西出来,  
  有没有哪位大虾用个这个函数呢?Top

相关问题

  • 如何搜索局域网上的共享资源?
  • 如何获取局域网计算机列表和共享资源?
  • 在pb 下面怎么访问局域网里面的共享资源阿
  • 怎样检索局域网内计算机所共享的所有资源?
  • 如何列出局域网中已知机器的共享资源。
  • 有没有程序列举局域网上的所有共享资源
  • DOS下如何上局域网并将本机资源共享出来?
  • 急!散分了!关于vpn连接共享局域网资源的问题
  • 请问 我想用java访问局域网里面的共享文件资源
  • 局域网共享问题

关键词

  • lpnetresource
  • lpnrlocal
  • cbbuffer
  • dwresult
  • dwresultenum
  • henum
  • wnetopenenum
  • enumeration
  • resource
  • hwnd

得分解答快速导航

  • 帖主:jx_lin
  • laiyiling

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo