Народ, помогите
как узнать админ шары???
те которые 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;