Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.08;
Скачать: CL | DM;

Вниз

Компы в сети   Найти похожие ветки 

 
Dstr ©   (2006-05-14 21:14) [0]

Подскажите,как у знать все компы в сети(или хотябы в рабочей группе),у меня есть несколько способов(Пока все были все нерабочие)WNetEnumResource возвращает ошибку.


 
MetalFan ©   (2006-05-15 13:27) [1]

http://delphimaster.net/view/6-1147666748/

и какую же ошибку он тебе возвращает? пример неработающего кода?


 
Dstr ©   (2006-05-15 16:48) [2]

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   //а сдесь собственно ошибка, вроде 59
           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.


 
Dstr ©   (2006-05-15 16:53) [3]

Слушайте,мне собственно надо послать шировещательную рассылку,но я пользуюсь ИндиUDP и если в Хост я напишу 255.255.255.255,то вылезает ошибка,если оставлю пустым,мессага приходит только мне.
Я написал алгоритм посылки мессаги из TStringList мне остается токо его напичкать IP шниками,дайте совет пожалуйста,чего мне делать?



Страницы: 1 вся ветка

Текущий архив: 2006.10.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.058 c
15-1158060195
Real
2006-09-12 15:23
2006.10.08
Реален ли CMP - Crimea Mastak Party?


2-1158708747
Павел_
2006-09-20 03:32
2006.10.08
Потоко-безопасная запиcь в файл.


1-1156592548
Handle
2006-08-26 15:42
2006.10.08
TTreeView


15-1158246367
Pazitron_Brain
2006-09-14 19:06
2006.10.08
Можно ли?


15-1158424188
*Новенький*
2006-09-16 20:29
2006.10.08
Словарик интернетчика.