Aptem |
Отправлено: 24.08.2004, 13:24 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
Привет, всем.
Есть функция, которая определяет подключен ли к инету компьютер или нет. Есть локальная сеть из 3 компов, один из которых имеет dial-up доступ, а остальные 2 компа подключаются к инету через первый.
Нужна программа, которая будет сидеть в трее и показывать например красный цвет иконки если инета нет и зеленый если есть. Вопрос вот в чем, как программе узнать когда проверить соединение.
Поку вижу два способа:
1. Запихнуть функцию проверки в таймер
2. Запихнуть функцию проверки в ApplicationOnIdle
Насчет второго не очень уверен. Как ваши соображения на этот счет? Когда же проверять соединение?
Наверное, у вас напрашивается вопрос: "А почему сам не возьмешь и не проверишь?". Вопрос правильный, но я сейчас в отъезде и немогу взять и попробывать, поэтому чтобы не терять драгоценное время решил узнать вашего мнения.
Большое спасибо за внимание. Жду ответов.
|
|
Иван |
Отправлено: 24.08.2004, 13:35 |
|
Машинист паровоза
Группа: Участник
Сообщений: 207
|
Этот вопрос на форуме уже поднимался много раз!
Когда я пытался это сделать я проверял в таймере.
QUOTE | Есть функция, которая определяет подключен ли к инету компьютер или нет. |
А какая это функция у Вас есть такая хорошая, что понимает подключен ли комп к интернету, и действительно ли "правильно она понимает" есть соединение или нет? Я пока не рассматриваю какое это соединение по RAS или LAN!
|
|
Aptem |
Отправлено: 24.08.2004, 14:08 |
|
Мастер участка
Группа: Участник
Сообщений: 349
|
CODE | DWORD flag;
AnsiString str = "";
if ( InternetGetConnectedState ( &flag, NULL ) )
str += "Internet connection is present\n";
else str += "No Internet connection\n";
if ( flag & INTERNET_CONNECTION_LAN )
str += "The system uses a local area network to connect to the Internet";
if ( flag & INTERNET_CONNECTION_MODEM )
str += "The system uses a modem to connect to the Internet";
if ( flag & INTERNET_CONNECTION_PROXY )
str += "The system uses a proxy server to connect to the Internet\n";
ShowMessage ( str ); |
1. А что, у вас есть сомнения насчет подобных функций.
2. А почему нельзя попробывать через ApplicationOnIdle?
|
|
Иван |
Отправлено: 24.08.2004, 16:01 |
|
Машинист паровоза
Группа: Участник
Сообщений: 207
|
Эту функцию я пробовал,что то не вязалось(давно было)
по моему на машине где не было ни интернета, ни сети, ни модема
функция вернула кучу всяких соединений.
QUOTE |
The system uses a local area network to connect to the Internet
The system uses a modem to connect to the Internet
The system uses a proxy server to connect to the Internet |
лучше работала другая функция, но у нее был недостаток, она могла распознать только соединение по RAS!!
нашел на форуме
почитайте, там все это обсуждалось
Отредактировано Иван — 24/08/2004, 17:05
|
|