up 
(0)V(0)
   

解决方案 »

  1.   

    命令行状态
    运行net session看看
      

  2.   

    得到当前连接到本机的其它机器的列表:
    procedure GetDomainList(TV:TTreeView);
    var
    a : Integer;
    ErrCode : Integer;
    NetRes : Array[0..1023] of TNetResource;
    EnumHandle : THandle;
    EnumEntries : DWord;
    BufferSize : DWord;
    s : string;
    itm : TTreeNode;
    begin
    { Start here }
    try
    With NetRes[0] do begin
    dwScope :=RESOURCE_GLOBALNET;
    dwType :=RESOURCETYPE_ANY;
    dwDisplayType :=RESOURCEDISPLAYTYPE_DOMAIN;
    dwUsage :=RESOURCEUSAGE_CONTAINER;
    lpLocalName :=NIL;
    lpRemoteName :=NIL;
    lpComment :=NIL;
    lpProvider :=NIL;
    end;
    { get net root }
    ErrCode:=WNetOpenEnum(
    RESOURCE_GLOBALNET,
    RESOURCETYPE_ANY,
    RESOURCEUSAGE_CONTAINER,
    @NetRes[0],
    EnumHandle
    );
    If ErrCode=NO_ERROR then begin
    EnumEntries:=1;
    BufferSize:=SizeOf(NetRes);
    ErrCode:=WNetEnumResource(
    EnumHandle,
    EnumEntries,
    @NetRes[0],
    BufferSize
    );
    WNetCloseEnum(EnumHandle);
    ErrCode:=WNetOpenEnum(
    RESOURCE_GLOBALNET,
    RESOURCETYPE_ANY,
    RESOURCEUSAGE_CONTAINER,
    @NetRes[0],
    EnumHandle
    );
    EnumEntries:=1024;
    BufferSize:=SizeOf(NetRes);
    ErrCode:=WNetEnumResource(
    EnumHandle,
    EnumEntries,
    @NetRes[0],
    BufferSize
    );
    IF ErrCode=No_Error then with TV do try
    a:=0;
    Items.BeginUpDate;
    Items.Clear;
    Itm:=Items.Add(TV.Selected,string(NetRes[0].lpProvider));
    Itm.ImageIndex:=0;
    Itm.SelectedIndex:=0;
      

  3.   

    这里有一个Delphi程序实现netstat功能(1.0),你可以看看,相信有用http://www.csdn.net/cnshare/soft/5/5181.shtm
      

  4.   

    当有计算机连接到本机时:
    const
      MaxNetArrayItems = 512;
    type
      TSessionInfo50 = packed record
        sesi50_cname: PChar;                   //remote computer name (connection id in Netware)
        sesi50_username: PChar;
        sesi50_key: DWORD;                     // used to delete session (not used in Netware)
        sesi50_num_conns: Word;
        sesi50_num_opens: Word;                //not available in Netware
        sesi50_time: DWORD;
        sesi50_idle_time: DWORD;               //not available in Netware
        sesi50_protocol: Char;
        padl: Char;
      end;  TNetSessionEnum = function (const pszServer: PChar; sLevel: SmallInt;
        pbBuffer: Pointer; cbBuffer: Word; var pcEntriesRead: Word;
        var pcTotalAvail: Word): DWORD; stdcall;
    procedure GetNetSessions(ComputerNames: TStrings);
    var
      SessionInfo: array[0..MaxNetArrayItems] of TSessionInfo50;
      EntriesRead, TotalAvail: Word;
      I: Integer;
      Str: string;
      NetSessionEnum: TNetSessionEnum;
      LibHandle: THandle;
    begin
      ComputerNames.Clear;
      LibHandle := LoadLibrary('SVRAPI.DLL');
      if LibHandle <> 0 then
      begin
        try
          @NetSessionEnum := GetProcAddress(LibHandle, 'NetSessionEnum');
          if (@NetSessionEnum <> nil) then
            if NetSessionEnum(nil, 50, @SessionInfo, Sizeof(SessionInfo), EntriesRead, TotalAvail) = 0 then
            begin
              for I := 0 to EntriesRead - 1 do
              with SessionInfo[I] do
              begin
                SetString(Str, sesi50_cname, StrLen(sesi50_cname));
                ComputerNames.Add(Str);
              end;
            end;
        finally
          FreeLibrary(LibHandle);
        end;
      end;
    end;