Текущий архив: 2004.06.20;
Скачать: CL | DM;
Вниз
Оптимизация сканирования локальной сети Найти похожие ветки
← →
arp (2004-05-01 19:57) [0]Знатоки подскажите возможно оптимизировать скорость сканирования компов в сети?
Есть вот такой способ (взят с этого форума)(представлена лишь часть):
ListBox1.Items.Clear;
ComputerCount := 0;
Workgroup := Edit3.Text + #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
Entriess := 1;
BufSize := SizeOf(Buf);
Result := WNetEnumResource( EnumHandle,Entriess,@Buf,BufSize );
If (Result = NO_ERROR) and (Entriess = 1) then
begin
Inc( ComputerCount );
Computer[ ComputerCount ] := StrPas(Buf[1].lpRemoteName);g:="";
if Computer[ ComputerCount ]<>"" then
for i:=3 to length(Computer[ ComputerCount ]) do g:=g+Computer[ ComputerCount ][i];
ListBox1.Items.Add(g)
end;
Until (Entriess <> 1) or (Result <> NO_ERROR);
WNetCloseEnum( EnumHandle );
методом применения разных способов этот код показал наиболее лучшие результаты по скорости.
Возможно вообще улучшить? или даже стараться не стоит?
← →
Rouse_ © (2004-05-01 23:07) [1]Разнеси по нескольким потокам - основной сканирует компы, дополнительные сканируют их ресурсы... если ресурсы не нужны - то ничего оптимизировать не нужно, вот правда над стилем кода желательно задуматься...
Страницы: 1 вся ветка
Текущий архив: 2004.06.20;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.02 c