ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Delphi] Проверка наличия локалки
  #1  
Старый 02.11.2006, 00:00
Pr0b3L
Новичок
Регистрация: 06.06.2006
Сообщений: 11
Провел на форуме:
118766

Репутация: 5
По умолчанию [Delphi] Проверка наличия локалки

Нужно проверить наличие локалки, подскажите через что можно реализовать
wininet.INTERNET_CONNECTION_LAN не возращяет правельного результата
 
Ответить с цитированием

  #2  
Старый 02.11.2006, 09:53
TaNkist
Участник форума
Регистрация: 06.04.2006
Сообщений: 257
Провел на форуме:
367179

Репутация: 76
По умолчанию

Можно попробывать так:
Код:
uses Wininet,windows;
var
  flags: DWORD;
begin
 InternetGetConnectedState(@flags,0);
 if (flags and INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN then MessageBoxA(0,'LAN Connection','lan',0);
end.
Или так
Код:
 if GetSystemMetrics(SM_NETWORK) and $01 = $01 then  MessageBoxA(0,'LAN Connection','lan',0);
 
Ответить с цитированием

  #3  
Старый 02.11.2006, 11:16
gemaglabin
Banned
Регистрация: 01.08.2006
Сообщений: 725
Провел на форуме:
7681825

Репутация: 4451


По умолчанию

Код:
InternetGetConnectedState(@flags,0);
if (flags and INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN
Зачем так усложнять

Код:
var Flag :DWord; isLan:Boolean;
begin
Flag  := INTERNET_CONNECTION_LAN;
isLan := InternetGetConnectedState(@Flag,0);
case isLan of
true  : ShowMessage('Connected');
false : ShowMessage('disConnected');
Код:
 if GetSystemMetrics(SM_NETWORK) and $01 = $01 then  MessageBoxA(0,'LAN Connection','lan',0);
Вообще непонятная функция,вернет true если подключено любое сетевое устройство,справка тоже ничего хорошего нам не говорит

Можно еще так

Код:
function InetIsOffline(Flag: Integer): Boolean; stdcall; external 'URL.DLL'
Но это уже к интернету %)
 
Ответить с цитированием

  #4  
Старый 02.11.2006, 14:32
TaNkist
Участник форума
Регистрация: 06.04.2006
Сообщений: 257
Провел на форуме:
367179

Репутация: 76
По умолчанию

Можно попробывать поискать компьютеры в сети, и если найдешь хоть один, то локальная сеть найдена.
Код:
function TNetForm.FillNetLevel(xxx: PNetResource; List: TListItems): Word;
type
  PNRArr = ^TNRArr;
  TNRArr = array[0..59] of TNetResource;
var
  x: PNRArr;
  tnr: TNetResource;
  I: integer;
  EntrReq,
    SizeReq,
    twx: THandle;
  WSName: string;
  LI: TListItem;
begin
  Result := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,
    RESOURCEUSAGE_CONTAINER, xxx, twx);
  if Result = ERROR_NO_NETWORK then
    Exit;
  if Result = NO_ERROR then
  begin
    New(x);
    EntrReq := 1;
    SizeReq := SizeOf(TNetResource) * 59;
    while (twx <> 0) and
      (WNetEnumResource(twx, EntrReq, x, SizeReq) <> ERROR_NO_MORE_ITEMS) do
    begin
      for i := 0 to EntrReq - 1 do
      begin
        Move(x^[i], tnr, SizeOf(tnr));
        case tnr.dwDisplayType of
          RESOURCEDISPLAYTYPE_SERVER:
            begin
              if tnr.lpRemoteName <> '' then
                WSName := tnr.lpRemoteName
              else
                WSName := tnr.lpComment;
              LI := list.Add;
              LI.Caption := copy(WSName, 3, length(WSName) - 2);
              //list.Add(WSName);
            end;
        else
          FillNetLevel(@tnr, list);
        end;
      end;
    end;
    Dispose(x);
    WNetCloseEnum(twx);
  end;
end;
Пример вызова: 
FillNetLevel(nil, ListView1.Items);  
(с) DelphiWorld
 
Ответить с цитированием

  #5  
Старый 02.11.2006, 21:34
Pr0b3L
Новичок
Регистрация: 06.06.2006
Сообщений: 11
Провел на форуме:
118766

Репутация: 5
По умолчанию

у меня сработал только вариант с поиском компов в сети %) TaNkist, [s]держи + [/s] а че плюс то не добавляется? =/

Последний раз редактировалось Pr0b3L; 02.11.2006 в 21:40..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПРОВЕРКА почти всех уязвимостей и багов! _GaLs_ Избранное 8 14.06.2010 12:00



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ