Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 303

•  TDictionary Custom Sort  6 348

•  Fast Watermark Sources  6 138

•  3D Designer  9 075

•  Sik Screen Capture  6 460

•  Patch Maker  6 877

•  Айболит (remote control)  6 859

•  ListBox Drag & Drop  5 734

•  Доска для игры Реверси  96 625

•  Графические эффекты  7 079

•  Рисование по маске  6 380

•  Перетаскивание изображений  5 251

•  Canvas Drawing  5 622

•  Рисование Луны  5 323

•  Поворот изображения  4 871

•  Рисование стержней  3 456

•  Paint on Shape  2 714

•  Генератор кроссвордов  3 591

•  Головоломка Paletto  2 884

•  Теорема Монжа об окружностях  3 690

•  Пазл Numbrix  2 424

•  Заборы и коммивояжеры  3 106

•  Игра HIP  2 067

•  Игра Go (Го)  1 992

•  Симулятор лифта  2 351

•  Программа укладки плитки  2 053

•  Генератор лабиринта  2 512

•  Проверка числового ввода  2 199

•  HEX View  2 526

•  Физический маятник  2 141

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Как найти все комьютеры в сети



Автор: http://forum.vingrad.ru

unit FindComp;

interface

uses
  Windows, Classes;

function FindComputers: DWORD;

var
  Computers: TStringList;

implementation

uses
  SysUtils;

const
  MaxEntries = 250;

function FindComputers: DWORD;

var
  EnumWorkGroupHandle, EnumComputerHandle: THandle;
  EnumError: DWORD;
  Network: TNetResource;
  WorkGroupEntries, ComputerEntries: DWORD;
  EnumWorkGroupBuffer, EnumComputerBuffer: array[1..MaxEntries] of TNetResource;
  EnumBufferLength: DWORD;
  I, J: DWORD;

begin

  Computers.Clear;

  FillChar(Network, SizeOf(Network), 0);
  with Network do
  begin
    dwScope := RESOURCE_GLOBALNET;
    dwType := RESOURCETYPE_ANY;
    dwUsage := RESOURCEUSAGE_CONTAINER;
  end;

  EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, @Network,
    EnumWorkGroupHandle);

  if EnumError = NO_ERROR then
  begin
    WorkGroupEntries := MaxEntries;
    EnumBufferLength := SizeOf(EnumWorkGroupBuffer);
    EnumError := WNetEnumResource(EnumWorkGroupHandle, WorkGroupEntries,
      @EnumWorkGroupBuffer, EnumBufferLength);

    if EnumError = NO_ERROR then
    begin
      for I := 1 to WorkGroupEntries do
      begin
        EnumError := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0,
          @EnumWorkGroupBuffer[I], EnumComputerHandle);
        if EnumError = NO_ERROR then
        begin
          ComputerEntries := MaxEntries;
          EnumBufferLength := SizeOf(EnumComputerBuffer);
          EnumError := WNetEnumResource(EnumComputerHandle, ComputerEntries,
            @EnumComputerBuffer, EnumBufferLength);
          if EnumError = NO_ERROR then
            for J := 1 to ComputerEntries do
              Computers.Add(Copy(EnumComputerBuffer[J].lpRemoteName, 3,
                Length(EnumComputerBuffer[J].lpRemoteName) - 2));
          WNetCloseEnum(EnumComputerHandle);
        end;
      end;
    end;
    WNetCloseEnum(EnumWorkGroupHandle);
  end;

  if EnumError = ERROR_NO_MORE_ITEMS then
    EnumError := NO_ERROR;
  Result := EnumError;

end;

initialization

  Computers := TStringList.Create;

finalization

  Computers.Free;

end.




Похожие по теме исходники

Учет посетителей интернет-салона

Автонастройщик сети

Передача видео по сети

Передача удаленного экрана по сети (Remote Screen)

 



Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте