Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Соединение с интернетом


Автор: Михалыч 22.2.2015, 18:08
Как на xe5 отследить что соединение есть, а потом разорвать с интернетом.
На делфи7 делал через rasapi. На xe5 rasapi не компилится.
Или подскажите компонент наподобее rasapi .но для xe5

Автор: Illusion Dolphin 22.2.2015, 20:45
Цитата

Как на xe5 отследить что соединение есть

На 100% никак
Цитата

а потом разорвать с интернетом.

Отключить все сетевые адаптеры

Автор: Poseidon 23.2.2015, 08:49
Михалыч, а что такое "соединение с интернетом"? У кого-то это прямой доступ, у кого-то VPN, кто-то еще через Dual-Up заходит, а кто-нибудь сделал мост через сеть к компьютеру, который имеет доступ. Ну и что разрывать? Только как посоветовал 
Illusion Dolphin.

Автор: Михалыч 23.2.2015, 09:04
Тогда как на делфи отключить сетевые адаптеры?
Нашел только через батник, но хотелось бы через делфи

Автор: Illusion Dolphin 23.2.2015, 09:46
Код

//Disable a NIC
const
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator : OLEVariant;
  FWMIService   : OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject   : OLEVariant;
  oEnum         : IEnumvariant;
  iValue        : LongWord;
begin;
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService   := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');
  FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapter Where NetEnabled=True','WQL',wbemFlagForwardOnly);
  oEnum         := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    FWbemObject.Disable();
    FWbemObject:=Unassigned;
  end;
end;


отсюда https://theroadtodelphi.wordpress.com/category/networking/ и там ещё есть варианты

Автор: Михалыч 23.2.2015, 11:00
Спасибо! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)