请问用delphi怎么实现如下功能:
  获得局域网中工作组名,该工作组中所有计算机名,IP地址,用一个控件显示(如listview等)!

解决方案 »

  1.   

    我刚好自己写了一个这样的东西,给我发妹儿[email protected], 我发给你
    不过100分要全给我.
      

  2.   

    procedure TFindTrd.FindDir(MyDir:string);
    Var
      EnumHandle                : THandle;
      FileRS                     : TNetResource;
      Buf                       : Array[1..500] of TNetResource;
      BufSize                   : DWord;
      Entries                   : DWord;
      Result                    : Integer;
    begin
      mydir := '\\'+mydir + #0;//mydir为工作组名时可以得到组内所有主机名
                         //mydir为主机名时可以得到机内所有共享文件夹名
      FillChar(FileRS, SizeOf(FileRS) , 0);
      With FileRS do begin
        dwScope := 2;
        dwType := 3;
        dwDisplayType := 1;
        dwUsage := 2;
        lpRemoteName := @mydir[1];
      end;
      WNetOpenEnum( RESOURCE_GLOBALNET,
                    RESOURCETYPE_ANY,
                    0,
                    @FileRS,
                    EnumHandle );  Repeat
        if TrdExit=true then Exit;
        Entries := 1;
        BufSize := SizeOf(Buf);
       Result := WNetEnumResource( EnumHandle,Entries,@Buf,BufSize );
       If (Result = NO_ERROR) and (Entries = 1) then
       begin
          NetDir:= StrPas(Buf[1].lpRemoteName); //得到网上资源名,主机或文件夹
          listview.~~~~~~~~~~~~~~//在这写入listview
        end ;
      Until (Entries <> 1) or (Result <> NO_ERROR);
      WNetCloseEnum( EnumHandle );
    end;