Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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х функций в onTimer
uses ... 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
8-1183355108
ZMRaven
2007-07-02 09:45
2008.09.28
Устройство захвата


8-1186323330
bagos
2007-08-05 18:15
2008.09.28
Online music editor


3-1206562057
Fin
2008-03-26 23:07
2008.09.28
Узнать Значение счётчика


15-1217845035
Прохоренко
2008-08-04 14:17
2008.09.28
PLSQL


8-1186337227
DelphiKettle
2007-08-05 22:07
2008.09.28
Audio Tools Library





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский