On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 790
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 17.02.09 18:04. Заголовок: Как узнать когда комп подключается к Инету !


Всем привет !
Подскажите пожалуйста: как написать прогу, которая бы отлавливала подключение к Инету ?

Хочу сделать добавление в БАЗУ-LetoDB из локальной БАЗЫ с компьютера при появление интернет соединения !

Заранее спасибо.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 38 , стр: 1 2 All [только новые]


администратор




Пост N: 1153
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.02.09 12:18. Заголовок: // в первом приближ..


 
// в первом приближении
hInternet := InternetOpen()
if hInternet <> 0
// бла бла бла
endif



ps
what32.lib

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 791
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.02.09 17:48. Заголовок: Что-то не получается..


Что-то не получается собрать....
Выдает кучу ошибок:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external 'InternetDial' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'InternetGetConnectedState' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'InternetOpenA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'InternetConnectA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'FtpOpenFileA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'InternetWriteFile' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'InternetReadFile' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'FtpCommandA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'FtpFindFirstFileA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'InternetFindNextFileA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'FtpGetFileA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'FtpPutFileA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'FtpCreateDirectoryA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'FtpRemoveDirectoryA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'FtpDeleteFileA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'FtpRenameFileA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'FtpGetCurrentDirectoryA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'FtpSetCurrentDirectoryA' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'InternetCloseHandle' referenced from Z:\TEST\WHAT32.LIB|_WinINet
Error: Unresolved external 'InternetAttemptConnect' referenced from Z:\TEST\WHAT32.LIB|_WinINet

Что делать ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1154
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.02.09 10:33. Заголовок: Andrey пишет: Что д..


Andrey пишет:

 цитата:
Что делать ?


Прилинкуй c:\bcc55\lib\wininet.lib

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 792
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.02.09 12:31. Заголовок: Собрал прогу ! Фигня..


Собрал прогу !
Фигня получается.... Пишет ВСЕГДА ЕСТЬ интернет !!!

FUNCTION MAIN()
LOCAL hInternet

hInternet := InternetOpen()
if hInternet <> 0
? "Есть ИНТЕРНЕТ....."
else
? "Нет ИНТЕРНЕТА....."
endif

?? hInternet
?
wait

RETURN NIL


Возвращает всегда "Есть ИНТЕРНЕТ..... 13369348" ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1155
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.02.09 14:47. Заголовок: Тогда вот так ;) ? I..


Тогда вот так ;)
? InternetGetConnectedState()

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 794
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.02.09 18:20. Заголовок: Dima пишет: Тогда в..


Dima пишет:

 цитата:
Тогда вот так ;)
? InternetGetConnectedState()



Возвращает .Т. даже когда подключена просто локальная сеть.
Какие еще будут предложения ?

Спасибо: 0 
ПрофильЦитата Ответить
модератор




Пост N: 957
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 24.02.09 18:34. Заголовок: Andrey пишет: Какие..


Andrey пишет:

 цитата:
Какие еще будут предложения ?


Посмотри рабочий пример из поставки МиниГУИ (папка samples\Advanced\Inet_Checker):


 цитата:

// Flags for InternetGetConnectedState and Ex

#define INTERNET_CONNECTION_MODEM 1
#define INTERNET_CONNECTION_LAN 2
#define INTERNET_CONNECTION_PROXY 4
#define INTERNET_CONNECTION_MODEM_BUSY 8 /* no longer used */
#define INTERNET_RAS_INSTALLED 16
#define INTERNET_CONNECTION_OFFLINE 32
#define INTERNET_CONNECTION_CONFIGURED 64

// Flag for InternetCheckConnection

#define FLAG_ICC_FORCE_CONNECTION 1

*--------------------------------------------------------*
Function IsConnected()
*--------------------------------------------------------*
local nFlags := 0, lRet := .f.

if CallDll32( "InternetGetConnectedState", "WININET.DLL", @nFlags, 0 ) == 1

if CallDll32( "InternetCheckConnection", "WININET.DLL", "http://www.google.com", ;
FLAG_ICC_FORCE_CONNECTION, 0 ) == 1

lRet := .t.
endif

endif

RETURN lRet



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 795
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.02.09 20:51. Заголовок: Спасибо Григорий !!!..


Спасибо Григорий !!! Чувствуется рука мастера ....
Буду пробовать.....

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1156
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 25.02.09 08:29. Заголовок: Andrey пишет: Возвр..


Andrey пишет:

 цитата:
Возвращает .Т. даже когда подключена просто локальная сеть.


у меня возвращает .f. в этом случае

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 797
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.02.09 23:22. Заголовок: Dima пишет: у меня..


Dima пишет:

 цитата:

у меня возвращает .f. в этом случае



У меня городская локальная сеть, и возвращает .T. даже если VPN-соединение отключено.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 798
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.02.09 23:26. Заголовок: Сделал програмку, ка..


Сделал програмку, как Григорий порекомендовал. Добавил к себе в проект cdll.c и hdll.prg

FUNCTION MAIN()
LOCAL lInet

lInet := IsConnected()
if lInet
? "Есть ИНТЕРНЕТ....."
else
? "Нет ИНТЕРНЕТА....."
endif

wait
RETURN NIL


Если Интернет подключен, то быстро сообщает. А если его нет, то просто чума, программа минут 5 его ищет.
Можно ли как нибудь ускорить этот процесс ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 617
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 26.02.09 12:52. Заголовок: Для Windows 2000 Pro..


Для Windows 2000 Professional, Windows 2000 Server, Windows XP, Windows Server 2003 можно использовать такую версию IsConnected() (не забываем подключить sensapi.lib )

#pragma BEGINDUMP

#include "windows.h"
#include "sensapi.h"
#include "hbapi.h"

HB_FUNC( ISCONNECTED )
{
DWORD dwFlag;
BOOL bRes = FALSE;

if ( IsNetworkAlive(&dwFlag) && dwFlag & NETWORK_ALIVE_WAN ) {
if( IsDestinationReachable("http://www.google.com", NULL) ) {
bRes = TRUE;
}
}
hb_retl( bRes );
}

#pragma ENDDUMP


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 800
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.02.09 14:40. Заголовок: Спасибо БОЛЬШОЕ Петр..


Спасибо БОЛЬШОЕ Петр !
Твоя версия самая быстрая .... Выдает моментально !
Видать вызов DLL слишком медленный...

Но вариант Григория все равно пригодиться для использования в других случаях.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1357
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.06.10 23:12. Заголовок: Возвращаюсь опять к ..


Возвращаюсь опять к этой теме !
Петр, не работает твой последний вариант !!!

Исходник: Скрытый текст


Сейчас у меня установлен роутер, так вот на нем возращает:
? "Нет ИНТЕРНЕТА....."

Что делать ? Можно ли создать универсальный вариант: для VPN и для роутеров ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1358
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.06.10 23:18. Заголовок: Вариант Григория из ..


Вариант Григория из МиниГУИ (папка samples\Advanced\Inet_Checker) работает сейчас быстро и правильно, но портировать код
на хХарбор не могу.

Можно ли заменить вызов CallDll32() на CallDll() из хХарбора ? и как тогда будет выглядеть код ?

Программа Григория: Скрытый текст


И к нему еще нужно цеплять hdll.prg....


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1738
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.06.10 23:27. Заголовок: Andrey Функции IsNe..


Andrey
Функции IsNetworkAlive , IsDestinationReachable из какой оперы (библиотеки) ?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1359
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.06.10 23:43. Заголовок: Dima пишет: Функции..


Dima пишет:

 цитата:
Функции IsNetworkAlive , IsDestinationReachable из какой оперы (библиотеки) ?



Из sensapi.lib !
Ну обижаешь .... Уже выучился чуть-чуть.... Прицеплена к программе Петра !
Не писал бы об этом, если работало...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 1739
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 07.06.10 23:46. Заголовок: Andrey пишет: Из se..


Andrey пишет:

 цитата:
Из sensapi.lib


Пардон , не заметил.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1483
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 08.06.10 08:49. Заголовок: Andrey пишет: Хочу ..


Andrey пишет:

 цитата:
Хочу сделать добавление в БАЗУ-LetoDB из локальной БАЗЫ с компьютера при появление интернет соединения !



Андрей, так ты эту функцию добавляешь в сервер letodb ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1360
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.06.10 09:30. Заголовок: Pasha пишет: Андрей..


Pasha пишет:

 цитата:
Андрей, так ты эту функцию добавляешь в сервер letodb ?



Да хотел, потом передумал.
Делаю отдельную программу для клиента, чтоб когда ИНЕТ включался, то на сервер копировались (синхронизировались) записи с клиента !
ИНЕТ же отрубается, а юзверу не объяснишь, что это не проблемы моей программы.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 38 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 24
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет