怎样把所有的计算机列表读入一个ListBox1中?

解决方案 »

  1.   

    function Toperation.GetServerList(ServerList:TStrings):Boolean;
    var
      EnumH:Cardinal;
      Buf:Pointer;
      BufSize:Cardinal;
      Count:DWORD;
      temp:Pchar;
    begin
      try
        Result:=False;
        if WNetOpenEnum(RESOURCE_CONTEXT,RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER,nil,EnumH)=NO_ERROR then
        begin
          BufSize:=1024*16;
          GetMem(Buf,BufSize);
          Count:=DWORD(1);
          while WNetEnumResource(EnumH,Count,Buf,BufSize)=NO_ERROR do
          begin
            if NETRESOURCE(Buf^).dwDisplayType=RESOURCEDISPLAYTYPE_SERVER then
            begin
              Temp:=StrNew(PAnsiChar(@NETRESOURCE(Buf^).lpRemoteName[2]));
              ServerList.Add(Temp);
              StrDispose(Temp);
            end;
          end;
          FreeMem(Buf,BufSize);
          WNetCloseEnum(EnumH);
          Result:=True;
        end;
      except
        Result:=False;
      end;
    end;这是我一个程序中的源代码,不过我只是检测服务器,不检测工作站,你自己修改一下啦!