设为首页 加入收藏

TOP

DELPHI 小结(八)
2017-10-10 12:04:56 】 浏览:2936
Tags:DELPHI 小结
;  1.0  2002/10/03 08:00:00
=================================================================}
function getusers(groupname: string; var list: tstringlist): boolean;
type
  tnetresourcearray = ^tnetresource;//网络类型的数组
var
  i: integer;
  buf: pointer;
  temp: tnetresourcearray;
  lphenum: thandle;
  netresource: tnetresource;
  count,bufsize,res: dword;
begin
  result := false;
  list.clear;
  fillchar(netresource, sizeof(netresource), 0);//初始化网络层次信息
  netresource.lpremotename := @groupname[1];//指定工作组名称
  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 i := 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;

{=================================================================
  功  能: 列举所有网络类型
  参  数:
          list: 需要填充的list
  返回值: 成功:  true,并填充list 失败: false;
  备 注:
  版 本:
     1.0  2002/10/03 08:54:00
=================================================================}
function getnetlist(var list: tstringlist): boolean;
type
  tnetresourcearray = ^tnetresource;//网络类型的数组
var
  p: tnetresourcearray;
  buf: pointer;
  i: smallint;
  lphenum: thandle;
  netresource: tnetresource;
  count,bufsize,res: dword;
begin
  result := false;
  list.clear;
  res := wnetopenenum( resource_globalnet, resourcetype_disk,
                      resourceusage_container, nil,lphenum);
  if res <> no_error then exit;//执行失败
  count := $ffffffff;//不限资源数目
  bufsize := 8192;//缓冲区大小设置为8k
  getmem(buf, bufsize);//申请内存,用于获取工作组信息
  res := wnetenumresource(lphenum, count, pointer(buf), bufsize);//获取网络类型信息
      //资源列举完毕&
首页 上一页 5 6 7 8 9 10 11 下一页 尾页 8/13/13
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Delphi的Socket编程步骤 下一篇【Spine】Spine Runtime for Delp..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目