как узнать админ шары
От: AlexKozlov Беларусь  
Дата: 01.11.04 12:55
Оценка:
Народ, помогите
как узнать админ шары???
те которые C$...Z$

обычные шары все получаю, а админские нет

мот я


WNetOpenEnum
WNetEnumResource


вызываю с какими не теми параметрами???
или админ шары вообще не так получаются???

вот код — но он почти классический
в отдельном потоке строится дерево сети
с доменами точно работает в других сетях не пробовал


procedure TNetEnumThread.LoadNetNode(NetNode: PNetResourceA);
var hEnum : THandle;
    Count,BufSize: DWORD;
    NR,Buf: PNetResourceA;
    R: Integer;
    CurrentNode: TTreeNode;
begin
  R:=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,NetNode,hEnum);
  if R<>NO_ERROR then exit;
  BufSize:=InitialSize;
  GetMem(Buf,BufSize);
  try
    while true do
    begin
      Count:=$FFFFFFFF; // I wish to read ALL items
      R:=WNetEnumResource(hEnum,Count, Buf, BufSize);
      if R = ERROR_MORE_DATA
      then // Oops ! The InitialSize is too small !
      begin
        Count:=$FFFFFFFF; // I wish to read ALL items
        FreeMem(Buf);
        GetMem(Buf,BufSize);
        R:=WNetEnumResource(hEnum,Count, Buf, BufSize);
      end;
      if R = ERROR_NO_MORE_ITEMS
      then break; // All items are processed
      if R<>NO_ERROR
      then abort; // R is the error code. Process it!
      NR:=Buf;
      while Count>0 do
      begin
        CurrentNode:=TreeNode; // Remember current position
        if NR.lpRemoteName<>nil
        then ChildNode:=StrPas(NR.lpRemoteName)
        else ChildNode:='-';
        Synchronize(AddChildNode);
        LoadNetNode(NR);
        TreeNode:=CurrentNode; // restore current position
        Inc(NR);
        Dec(Count);
      end;
    end;
  finally
    WNetCloseEnum(hEnum); // Close handle
    FreeMem(Buf); // Free memory1
  end;
end;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.