设为首页 加入收藏

TOP

DELPHI 小结(六)
2017-10-10 12:04:56 】 浏览:2929
Tags:DELPHI 小结
;       ipaddr: 机器ip
          list: 需要填充的list
  返回值: 成功:  true,并填充list 失败: false;
  备 注:
     wnetopenenum function starts an enumeration of network
     resources or existing connections.
     wnetenumresource function continues a network-resource
     enumeration started by the wnetopenenum function.
  版 本:
     1.0  2002/10/03 07:30:00
=================================================================}
function getuserresource(ipaddr: 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;
  if copy(ipaddr,0,2) <> '\\' then
    ipaddr := '\\'+ipaddr;   //填充ip地址信息
  fillchar(netresource, sizeof(netresource), 0);//初始化网络层次信息
  netresource.lpremotename := @ipaddr[1];//指定计算机名称
  //获取指定计算机的网络资源句柄
  res := wnetopenenum( resource_globalnet, resourcetype_any,
                      resourceusage_connectable, @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表示删除"\\",
       //如\\192.168.0.1 => 192.168.0.1
       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:00:00
=================================================================}
function getgrouplist( var list : tstringlist ) : boolean;
type
  tnetresourcearray = ^tnetresource;//网络类型的数组
var
  netresource: tnetresource;
  buf: pointer;
  count,bufsize,res: dword;
  lphenum: thandle;
  p: tnetresourcearray;
  i,j: smallint;
  networktypelist: tlist;
begin
  result := false;
  networktypelist := tlis
首页 上一页 3 4 5 6 7 8 9 下一页 尾页 6/13/13
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Delphi的Socket编程步骤 下一篇【Spine】Spine Runtime for Delp..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目