Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2012, 17:27   #1
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
Сообщение розорвать соединение с интернетом

этот код розрывает только диал соединение
Код:
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
  TRasConn = record
    Size: DWORD;
    Handle: THandle;
    Name: array[0..20] of AnsiChar;
  end;

  TRasEnumConnections = function(var RasConn: TRasConn; var Size: DWORD;
    var Connections: DWORD): DWORD stdcall;
  TRasHangUp = function(Handle: THandle): DWORD stdcall;
var
  Form1: TForm1;

implementation

{$R *.dfm}
function DisconnectDialUp: Boolean;
var
  Lib: HINST;
  RasEnumConnections: TRasEnumConnections;
  RasHangUp: TRasHangUp;
  RasConn: TRasConn;
  Code, Size, Connections: DWORD;
begin
  Result := True;
  try
    Lib := LoadLibrary('rasapi32.dll');
    try
      if Lib = 0 then
        Abort;
      RasEnumConnections := GetProcAddress(Lib, 'RasEnumConnectionsA');
      if not Assigned(@RasEnumConnections) then
        Abort;
      RasHangUp := GetProcAddress(Lib, 'RasHangUpA');
      if not Assigned(@RasHangUp) then
        Abort;
      FillChar(RasConn, SizeOf(RasConn), 0);
      RasConn.Size := SizeOf(RasConn);
      Code := RasEnumConnections(RasConn, Size, Connections);
      if (Connections <> 1) or (Code <> 0) then
        Abort;
      if RasHangUp(RasConn.Handle) <> 0 then
        Abort;
      Sleep(3000);
    finally
      FreeLibrary(Lib);
    end;
  except
    on E: EAbort do
      Result := False;
  else
    raise;
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if DisconnectDialUp = true then
  ShowMessage('Ok')
else
  ShowMessage('No');
end;
end.
а как прервать любое соединение с интернетом, Dial прерывает, а 3G-modem нет.
beegl вне форума Ответить с цитированием
Старый 02.12.2012, 17:51   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от beegl Посмотреть сообщение
этот код розрывает только диал соединение
Код:
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
  TRasConn = record
    Size: DWORD;
    Handle: THandle;
    Name: array[0..20] of AnsiChar;
  end;

  TRasEnumConnections = function(var RasConn: TRasConn; var Size: DWORD;
    var Connections: DWORD): DWORD stdcall;
  TRasHangUp = function(Handle: THandle): DWORD stdcall;
var
  Form1: TForm1;

implementation

{$R *.dfm}
function DisconnectDialUp: Boolean;
var
  Lib: HINST;
  RasEnumConnections: TRasEnumConnections;
  RasHangUp: TRasHangUp;
  RasConn: TRasConn;
  Code, Size, Connections: DWORD;
begin
  Result := True;
  try
    Lib := LoadLibrary('rasapi32.dll');
    try
      if Lib = 0 then
        Abort;
      RasEnumConnections := GetProcAddress(Lib, 'RasEnumConnectionsA');
      if not Assigned(@RasEnumConnections) then
        Abort;
      RasHangUp := GetProcAddress(Lib, 'RasHangUpA');
      if not Assigned(@RasHangUp) then
        Abort;
      FillChar(RasConn, SizeOf(RasConn), 0);
      RasConn.Size := SizeOf(RasConn);
      Code := RasEnumConnections(RasConn, Size, Connections);
      if (Connections <> 1) or (Code <> 0) then
        Abort;
      if RasHangUp(RasConn.Handle) <> 0 then
        Abort;
      Sleep(3000);
    finally
      FreeLibrary(Lib);
    end;
  except
    on E: EAbort do
      Result := False;
  else
    raise;
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if DisconnectDialUp = true then
  ShowMessage('Ok')
else
  ShowMessage('No');
end;
end.
а как прервать любое соединение с интернетом, Dial прерывает, а 3G-modem нет.
покопайтесь в Windows, WinInet, WinSock.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 02.12.2012, 18:15   #3
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

приведите пример какой-то
beegl вне форума Ответить с цитированием
Старый 02.12.2012, 18:43   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

В случае с соединением через USB-адаптер, вы ничего не сделаете.
Человек_Борща вне форума Ответить с цитированием
Старый 02.12.2012, 19:06   #5
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

route delete 0.0.0.0
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 02.12.2012, 19:29   #6
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Цитата:
Сообщение от Slym Посмотреть сообщение
route delete 0.0.0.0
что это, куда вписать?
beegl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить соединение с Интернетом hacknet Работа с сетью в Delphi 21 01.07.2012 11:35
Соединение с интернетом ManU Работа с сетью в Delphi 3 05.02.2010 22:30
Пропадает соединение с интернетом taras_33 Операционные системы общие вопросы 1 05.07.2009 17:53
Соединение с интернетом stim-12 Помощь студентам 4 05.01.2009 17:19
Установить соединение с интернетом BanDit Общие вопросы Delphi 3 17.01.2008 22:44