Показать сообщение отдельно
  #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;
Ответить с цитированием