Форум: "Начинающим";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];
ВнизКак узнать об активных сетевых подключениях Найти похожие ветки
← →
altatr © (2008-08-17 14:19) [0]Всем привет!
Нужна программа которая будет следить за состоянием модемного (ADSL) подключения к интернету и при его отсутствии сама его вызывать.
Какой компонент и какие свойства помогут узнать об активности сетевого подключения.
Сначала хотел реализовать это на пинговании какого нибудь сервера и если ответ не получен то вызвать подключение. Но может есть и более короткий путь? Например получить от самой операционной системы сведения об активных подключениях
← →
Palladin © (2008-08-17 14:29) [1]RasEnumConnections например... а вообще смотря как ADSL соединение настроено...
← →
Anatoly Podgoretsky © (2008-08-17 14:35) [2]> altatr (17.08.2008 14:19:00) [0]
ADSL модем сам в состоянии делать это без каких либо программ.
← →
altatr © (2008-08-17 14:46) [3]
> Anatoly Podgoretsky © (17.08.08 14:35) [2]
> > altatr (17.08.2008 14:19:00) [0]ADSL модем сам в состоянии
> делать это без каких либо программ.
Как модем может вызвать соединение созданное на компьютере?
← →
sniknik © (2008-08-17 14:51) [4]> Нужна программа которая будет следить за состоянием модемного (ADSL) подключения к интернету и при его отсутствии сама его вызывать.
> Но может есть и более короткий путь?
можно вообще не следить за чемто конкретным, а а следить за тем что в ехплорере установлено по умолчанию
в настройках IE вкладка подключение, галка на использовать подключение по умолчанию, что поставишь туда то и будет, и при первом коннекте (один раз) надо поставить галочку на "подключатся автоматически", а то от параметров не всегда срабатывает, почему х.з.
в общем вся программа тогда будет из 2х функций в onTimeruses ... WinInet;
procedure TfrmPing.Timer1Timer(Sender: TObject);
var
dwConnectionTypes: DWORD;
wMsg: string;
begin
Timer1.Enabled:= false;
TimeBefore:= IncSecond(TimeBefore, -1);
if CompareTime(TimeBefore, 0) <> 0 then
Label7.Caption:= TimeToStr(TimeBefore)
else begin
Label7.Caption:= TimeToStr(TimeBefore);
try
dwConnectionTypes:= INTERNET_CONNECTION_MODEM or INTERNET_CONNECTION_LAN or INTERNET_CONNECTION_PROXY;
DateTimeToString(wMsg, "dd"/"mm"/"yyyy hh":"nn":"ss"."zzz", Now);
Label5.Caption:= wMsg;
if not InternetGetConnectedState(@dwConnectionTypes, 0) then begin
Label6.Caption:= "Try";
EventToLog(wMsg+"; Коннект отсутствует... попытка подключения.");
if not InternetAutoDial(INTERNET_AUTODIAL_FORCE_ONLINE or INTERNET_AUTODIAL_FORCE_UNATTENDED, 0) then begin
Label6.Caption:= "Error";
EventToLog(wMsg+"; Подключится не удалось...");
end;
end else
Label6.Caption:= "Connected";
except {NOTHING} end;
TimeBefore:= DateTimePicker1.Time;
end;
Timer1.Enabled:= true;
end;
(все не относящееся к делу, типа обратного отсчета, можно выкинуть, единственное значимое это проверка статуса и вызов дозвона)
← →
altatr © (2008-08-17 14:53) [5]
> sniknik © (17.08.08 14:51) [4]
сейчас буду пробовать...
← →
sniknik © (2008-08-17 14:53) [6]> ADSL модем сам в состоянии делать это без каких либо программ.
они разные вообщето...
> Как модем может вызвать соединение созданное на компьютере?
можно задать в модеме, а инет будет через сеть т.е. модем будет роутером.
← →
sniknik © (2008-08-17 14:58) [7]непонятно что это за ADSL такой что его приходиться проверять... часто рвется?
у меня было так когда только поставил, от неправильных дров... показанное написал как временную заплатку пока не разобрался (не знал что дрова), два три дня проработало, после стало не нужным (намного надежнее соеденение по сравнению с диалапом. но с диалапом другое, там повременка поэтому сам следил ;). без программ).
← →
altatr © (2008-08-17 15:30) [8]
> sniknik © (17.08.08 14:58) [7]
> непонятно что это за ADSL такой что его приходиться проверять.
> .. часто рвется?
Бывает частенько! То линию ковырнут, то свет отключат, то какуюнибудь профилактику устроят.
А роутером модем под нашего провайдера не настроить. Модем работает в режиме Bridge. А на компе настраеваетмя VPN соединение с именем паролем и IP адресом компа к которому идет подключение.
прогу урезал вот до такого:
procedure TForm1.Timer1Timer(Sender: TObject);
var
dwConnectionTypes: DWORD;
begin
dwConnectionTypes:= INTERNET_CONNECTION_MODEM or INTERNET_CONNECTION_LAN or INTERNET_CONNECTION_PROXY;
if not InternetGetConnectedState(@dwConnectionTypes, 0) then Label1.Caption:= "No" else Label1.Caption:= "Connected";
end;
На компе помимо соединения VPN (собственно интернет) имеются еще 2 локальных подключения. В проге статус меняется только если все три соединения поднять (Connected) или отрубить (No).
← →
sniknik © (2008-08-17 15:57) [9]> В проге статус меняется только если все три соединения поднять (Connected) или отрубить (No).
а в IE что в настройках подключения стоит? наверное "никогда не использовать", вот он и проверяет все возможные.
и еще параметры попробуй разные.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.064 c