Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
ВнизСетевое окружение Найти похожие ветки
← →
Димыч © (2006-11-23 13:28) [0]Неужели нет способа получить список компьютеров в локальной сети не производя длительных поисков (таких как в программе NetScan)? Есть ли способ получить этот список от Windows, она же выводит его гораздо быстрее, может она его гдето хранит?
← →
Elen © (2006-11-23 13:38) [1]Почему нет? есть :
function FindAllComputers(Workgroup: string;Divider:string=#13#10):string;
var
EnumHandle: THandle;
WorkgroupRS: TNetResource;
Buf: array [1..500] of TNetResource;
BufSize: cardinal;
Entries: cardinal;
Res: Integer;
Computer:string[255]; { array [1..500] of string[25];}
ComputerCount: Integer;
begin
ComputerCount := 0;
Workgroup := Workgroup + #0;
FillChar(WorkgroupRS, SizeOf(WorkgroupRS) , 0);
with WorkgroupRS do
begin
dwScope := 2;
dwType := 3;
dwDisplayType := 1;
dwUsage := 2;
lpRemoteName := @Workgroup[1];
end;
WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @WorkgroupRS, EnumHandle);
repeat
Entries := 1;
BufSize := SizeOf(Buf);
Res := WNetEnumResource(EnumHandle, Entries, @Buf, BufSize);
if (Res = NO_ERROR) and (Entries = 1) then
begin
Inc( ComputerCount );
Computer{[ ComputerCount ]} := StrPas(Buf[1].lpRemoteName);
result:=result+Divider+(Computer{[ ComputerCount ]});
end;
until
(Entries <> 1) or (Res <> NO_ERROR);
WNetCloseEnum( EnumHandle );
end;
//**************************************************************************
← →
Димыч © (2006-11-24 09:28) [2]В работе код еще не опробовал, но все равно большое спасибо за ответ поделу (без воды) :)
← →
Elen © (2006-11-24 09:32) [3]
> Димыч
В догонку : ListBox.items.text:=FindAllComputers(...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.05 c