发信人: delphilxh(先锋) 
整理人: teleme(2001-05-08 12:35:34), 站内信件
 | 
 
 
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[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 Ind := 0 to Count - 1 do
     Begin
     List.Add(Temp^.lpRemoteName);
     Inc(Temp);
     End;
 End;
 Res := WNetCloseEnum(lphEnum);          //关闭一次列举
 If Res <> NO_ERROR Then exit;          //执行失败
   Result := True;
   FreeMem(Buf);
 End;
 
 
 procedure TForm1.Button1Click(Sender: TObject);
 var
   List:TstringList;
   i:integer;
 begin
 try
   List:=TstringList.Create;
   if GetUserResource(edit1.text,List) then
     if List.count=0 then        //指定计算机下没有找到共享资源
       begin
         memo1.Lines.Add (edit1.text+'下没有找到共享资源!');
       end
   else
     memo1.Lines.Add (edit1.text+'下的所有共享资源如下:');
     for i:=0 to List.Count-1  do
       begin
         Memo1.lines.Add (List.strings[i]);
       end;
 finally
   List:=TstringList.Create;    //如有异常则释放分配的资源
 end;
 end;
 
 
  ---- ██████ 
 █┏━━┓█ Delphi先锋网欢迎您!!!!
 █┃之先┃█  网易Delphi论坛 
 █┃印锋┃█ 
 █┗━━┛█ 
 ██████ 
               | 
 
 
 |