Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.02.2007, 07:38
Змей-Горыныч Змей-Горыныч вне форума
Прохожий
 
Регистрация: 06.02.2007
Сообщения: 1
Репутация: 10
По умолчанию Пограмное переподключение модемного соединения

Многоуважаемые, подскажите пожалуйста, или хоть носом тыкните куда. Задача такая - есть подключение к интернет через GPRS-модем сотика. Часто подвисает то-ли GPRS-связь, то-ли интерфейс связи с модемом сотика. При этом Windows разрыв связи не показывает, и программа, работающая с этим подключением, соответственно считает что связь есть, но отправлять/получать ничего не может. Проблемма устраняется при переподключении соединения.
А теперь собственно вопрос: Как можно из своей программы на Delphi получить список активных соединений, а затем отключить их и потом соединиться снова?
Наверное надо использовать вункции api из wininеt? Вот только толкового описания их применения не могу найти. Выручайте!!!
Ответить с цитированием
  #2  
Старый 06.02.2007, 10:37
Holy Holy вне форума
Новичок
 
Регистрация: 31.07.2006
Сообщения: 55
Репутация: 10
По умолчанию

Скачай модуль RasUnit.
Я использую такую процедуру для определения состояния подключения удаленного соединения:
Код:
function TestRasConnect(RasName: String): Boolean;
// Функция проверяет наличие потключения к интернет по указанному
// удаленному соединению.
type
  TRasConnE = record
    dwSize: Longint;
    HRasConn: THRasConn;
    szEntryName: array[0..RAS_MaxEntryName] of AnsiChar;
    szDeviceType: array[0..RAS_MaxDeviceType] of AnsiChar;
    szDeviceName: array[0..RAS_MaxDeviceName] of AnsiChar;
  end;

  TRasConnStatusE = record
    dwSize: Longint;
    RasConnState: TRasConnState;
    dwError: LongInt;
    szDeviceType: array[0..RAS_MaxDeviceType] of AnsiChar;
    szDeviceName: array[0..RAS_MaxDeviceName] of AnsiChar;
  end;
  
var
  i, l: Integer;
  RCCount: Integer;
  Connected: Boolean;
  ListRC: array[0..10] of TRasConnE;
  RasConn: TRasConnE;
  RCStatus: TRasConnStatusA;
begin
  Connected := False;;

  l := SizeOf(ListRC);

  ZeroMemory(@ListRC, l);
  ListRC[0].dwSize := SizeOf(TRasConnE);

  // Выбираем потключенные удаленные соединения
  RCCount := 0;
  RasEnumConnections(@ListRC, l, RCCount);

  for i := 0 to RCCount-1 do
  begin
    RasConn := ListRC[i];

    ZeroMemory(@RCStatus, SizeOf(RCStatus));
    RCStatus.dwSize := SizeOf(TRasConnStatusE);

    // Читаем статус текущего удаленного соединения
    RasGetConnectStatus(RasConn.HRasConn, RCStatus);

    if (RCStatus.rasconnstate = RASCS_Connected)
      and (RasConn.szEntryName = RasName) then
    begin
      Connected := True;
      Break;
    end;
  end;

  Result := Connected;
end;
Ответить с цитированием
  #3  
Старый 13.02.2007, 14:42
Аватар для Майняк
Майняк Майняк вне форума
Начинающий
 
Регистрация: 03.02.2006
Адрес: Киров
Сообщения: 198
Репутация: 50
По умолчанию

RasEnumConnections...
Вот посмотри еще
Ответить с цитированием
  #4  
Старый 20.05.2007, 19:54
malor malor вне форума
Прохожий
 
Регистрация: 20.05.2007
Сообщения: 1
Репутация: 10
По умолчанию

Я подключаюсь прогой, используя RASUnit. Где посмотреть логи подключения?
После нажатия на кнопку должна идти процедура установки соединения с провом, но ничего не происходит...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025