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

Вниз

как отключить и включить подключение сети программно [D6, D7, Win   Найти похожие ветки 

 
chips   (2004-03-17 13:04) [0]

есть ли команда API ?


 
BiN ©   (2004-03-17 14:10) [1]

http://www.xprogramming.ru/Articles/NetTests.html


 
Denton ©   (2004-03-17 20:30) [2]

Эта штука не раборает!!


 
Rouse_ ©   (2004-03-17 23:03) [3]

> [2] Denton ©   (17.03.04 20:30)
Еще б она работала - выпрямитель ищи... (код не стандартный :)


 
Verg ©   (2004-03-18 09:24) [4]

Ух ты. Не работает. Значит дурят нашего брата :)
Вот все дурят и дурят....

Давайте проверим.
Ниже код для 98-ой и выше, который следует запускать с параметром ON или OFF.
Сделаем опрос - у кого сработал, т.е. сетевой интерфейс перестал функционировать при запуске с параметром OFF, а у кого нет.
(Перед ответом не забудте запустить его же с параметром ON :) ))

program IfControl;

{$APPTYPE CONSOLE}

uses
 Windows,
 SysUtils,
 WinSock;

const
 MIB_IF_ADMIN_STATUS_UP         = 1;
 MIB_IF_ADMIN_STATUS_DOWN       = 2;
 MIB_IF_ADMIN_STATUS_TESTING    = 3;

 MAX_INTERFACE_NAME_LEN  = 256;
 MAX_TRANSPORT_NAME_LEN  = 40;
 MAX_MEDIA_NAME          = 16;
 MAX_PORT_NAME           = 16;
 MAX_DEVICE_NAME         = 128;
 MAX_PHONE_NUMBER_LEN    = 128;
 MAX_DEVICETYPE_NAME     = 16;
 MAXLEN_IFDESCR          = 256;
 MAXLEN_PHYSADDR         = 8;

type
   TMIB_IFROW = record
           wszName : array[0..MAX_INTERFACE_NAME_LEN-1] of widechar;
           dwIndex,
           dwType,
           dwMtu,
           dwSpeed,
           dwPhysAddrLen : DWORD;
           bPhysAddr : array[0..MAXLEN_PHYSADDR-1] of BYTE;
           dwAdminStatus,
           dwOperStatus,
           dwLastChange,
           dwInOctets,
           dwInUcastPkts,
           dwInNUcastPkts,
           dwInDiscards,
           dwInErrors,
           dwInUnknownProtos,
           dwOutOctets,
           dwOutUcastPkts,
           dwOutNUcastPkts,
           dwOutDiscards,
           dwOutErrors,
           dwOutQLen,
           dwDescrLen : DWORD;
           bDescr : array[0..MAXLEN_IFDESCR-1] of BYTE;
end;

PMIB_IFROW = ^TMIB_IFROW;

var
 InetIFMIB_ROW  : TMIB_IFROW;

function GetBestInterface(
 dwDestAddr : DWORD;     // destination IP address
 var pdwBestIfIndex : DWORD // index of interface with the best route
) : DWORD; stdcall; external "iphlpapi.dll";

function  SetIfEntry(pIfRow : PMIB_IFROW   // specifies interface and status
): DWORD; stdcall; external "iphlpapi.dll";

begin
 { TODO -oUser -cConsole Main : Insert code here }
 try
   if ParamCount < 1 then
   begin
     Writeln("ON/OFF parameter required");
     exit;
   end;
   Fillchar(InetIFMIB_ROW, sizeof(InetIFMIB_ROW), 0);
   if GetBestInterface( INADDR_ANY, InetIFMIB_ROW.dwIndex ) <> NO_ERROR then
   begin
     Writeln(SysErrorMessage(GetLastError));
     exit;
   end;
   if AnsiUpperCase(ParamStr(1)) <> "OFF" then
     InetIFMIB_ROW.dwAdminStatus := MIB_IF_ADMIN_STATUS_UP
   else
     InetIFMIB_ROW.dwAdminStatus := MIB_IF_ADMIN_STATUS_DOWN;
   if SetIfEntry(@InetIFMIB_ROW)<> NO_ERROR then
   begin
     Writeln(SysErrorMessage(GetLastError));
     exit;
   end;
   Writeln("OK");
 finally
   Readln;
 end;
end.


 
chips   (2004-03-18 13:54) [5]

Под win2000 работает. Буду изучать мат часть. :-))


 
Dentom   (2004-03-19 00:22) [6]

блин ну я не доганяю что оно делает сеть как работала так и работает????? обьясните пожалуста мне деревянному



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

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

Наверх




Память: 0.48 MB
Время: 0.139 c
14-1079284359
YurikGl
2004-03-14 20:12
2004.04.11
Проблемы с Zip


6-1079338820
alt7
2004-03-15 11:20
2004.04.11
Microsoft WNet праблем


14-1082008008
Style
2004-04-15 09:46
2004.04.11
Как делать чтобы public property сохранялось в DFM?


8-1071865408
` frizZ. `
2003-12-19 23:23
2004.04.11
Изменение размеров изображения


1-1080112850
stud
2004-03-24 10:20
2004.04.11
появилась ошибка