网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
在delhpi程序中获取网络资源信息
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
GroupName中的计算机名称,返回值为TRUE表示执行成功,//参数List中返回计算机名称Function GetUsers( GroupName : string; var List : TStringList ) : Boolean;Var

  NetResource : TNetResource;

  Buf : Pointer;

  Count,BufSize,Res : DWord;

  Ind : Integer;

  lphEnum : THandle;

  Temp : TNetResourceArray;
Begin

  Result := False;

  List.Clear;

  FillChar(NetResource, SizeOf(NetResource), 0);//初始化网络层次信息

  NetResource.lpRemoteName := @GroupName;//指定工作组名称

  NetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SERVER;//类型为服务器(工作组)

  NetResource.dwUsage := RESOURCEUSAGE_CONTAINER;

  NetResource.dwScope := RESOURCETYPE_DISK;//列举文件资源信息

  //获取指定工作组的网络资源句柄

  Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_DISK,

  RESOURCEUSAGE_CONTAINER, @NetResource,lphEnum);

  If Res <> NO_ERROR Then Exit; //执行失败

  While True Do//列举指定工作组的网络资源

 Begin

  Count := $FFFFFFFF;//不限资源数目

  BufSize := 8192;//缓冲区大小设置为8K

  GetMem(Buf, BufSize);//申请内存,用于获取工作组信息

  //获取计算机名称

  Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize);

  If Res = ERROR_NO_MORE_ITEMS Then break;//资源列举完毕

  If (Res <> NO_ERROR) then Exit;//执行失败

  Temp := TNetResourceArray(Buf);

  For Ind := 0 to Count - 1 do//列举工作组的计算机名称

 Begin

  //获取工作组的计算机名称,+2表示删除"\\",如\\wangfajun=>wangfajun

  List.Add(Temp^.lpRemoteName + 2);

  Inc(Temp);

 End;

 End;

  Res := WNetCloseEnum(lphEnum);//关闭一次列举

  If Res <> NO_ERROR Then exit;//执行失败

  Result := True;

  FreeMem(Buf);
End;

  三、列举一个计算机中的共享资源

  在WNetOpenEnum函数中,将参数lpNetResource中的lpRemoteName部分指定为一个计算机的名称(如“\\wangfajun”),可以获取一个句柄,在WNetEnumResource中利用这个句柄,可以获取一个NetResource类型的数组,每个NetResource元素的lpRemoteName部分即为计算机中的共享资源名称(可以是共享目录和文件名称、共享打印机名称等,如“\\wangfajun\共享文件”)。

  具体的请参见以下程序段及注释信息。

  NetResource.lpRemoteName := @UserName;//指定计算机名称

  //获取指定计算机的网络资源句柄

  Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_ANY,

  RESOURCEUSAGE_CONNECTABLE, @NetResource,lphEnum);

  获取计算机名称的完全程序源代码如下:

  //列举出指定计算机UserName中的共享资源名称,返回值为TRUE表示执行成功,//参数List中返回共享资源名称Function GetUserResource( UserName : string ; var List : TStringList ) : Boolean;Var

  NetResource : TNetResource;

  Buf : Pointer;

  Count,BufSize,Res : DWord;

  Ind : Integer;

  lphEnum : THandle;

  Temp : TNetResourceArray;
Begin

  Result := False;

  List.Clear;

  FillChar(NetResource, SizeOf(NetResource), 0);//初始化网络层次信息

  NetResource.lpRemoteName := @UserName;//指定计算机名称

  //获取指定计算机的网络资源句柄

  Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_ANY,

  RESOURCEUSAGE_CONNECTABLE, @NetResource,lphEnum);

  If Res <> NO_ERROR Then exit;//执行失败

  While True Do//
  • 上一篇资讯: 收藏夹函数 
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号