webForumDet fria alternativet

Nätverk 2

1 svar · 323 visningar · startad av Niclas Ohlsson

Niclas OhlssonMedlem sedan juli 200068 inlägg
#1

Hur gör man för att få fram vilka som är inne på nätverket (om man har ett litet nätverk på c:a 8st datorer)

WiNNeMedlem sedan maj 2000192 inlägg
#2

Om du menar vilka datorer som är anslutna så fungerar följande fint:
--------------------------------
procedure TForm1.Button1Click(Sender: TObject);
procedure Enum(h: THandle);
var
nr: array[0..2000] of TNetResource;
nRes, cbBuf : Cardinal;
i: Integer;
he: THandle;
begin
nRes := 100;
cbBuf := sizeof(nr);
FillChar(nr, sizeof(nr), 0);
WNetEnumResource(h, nRes, @nr, cbBuf);
for i := 0 to nRes-1 do
begin
if (nr.dwDisplayType in [RESOURCEDISPLAYTYPE_DOMAIN]) then
treeview1.items.add(treeview1.TopItem,pchar(nr.lpRemoteName));
if (nr.dwDisplayType in [RESOURCEDISPLAYTYPE_DIRECTORY,RESOURCEDISPLAYTYPE_SERVER]) and Assigned(nr.lpRemoteName) then
treeview1.items.addchild(treeview1.TopItem,pchar(nr.lpRemoteName));
if nr.dwDisplayType in [RESOURCEDISPLAYTYPE_DOMAIN,
RESOURCEDISPLAYTYPE_NETWORK] then
begin
WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
RESOURCEUSAGE_ALL, @nr, he);
Enum(he);
WNetCloseEnum(he);
end;
end;
end;
var
he: THandle;
begin
treeview1.Items.Clear;
WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,
RESOURCEUSAGE_ALL, nil, he);
Enum(he);
WNetCloseEnum(he);
end;
-----------------------------------
Släng upp en knapp och en Treeview.
Körde det här på jobb med ett jävla stort nätverk, flera hundra datorer, och det tog ett tag för den att bli klar. Om det bara är c:a 8 datorer bör det gå betydligt snabbare.

------------------
winne.net

127 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)