Автор | Сообщение |
|
| постоянный участник
|
Пост N: 790
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.02.09 18:04. Заголовок: Как узнать когда комп подключается к Инету !
Всем привет ! Подскажите пожалуйста: как написать прогу, которая бы отлавливала подключение к Инету ? Хочу сделать добавление в БАЗУ-LetoDB из локальной БАЗЫ с компьютера при появление интернет соединения ! Заранее спасибо.
|
|
|
Ответов - 38
, стр:
1
2
All
[только новые]
|
|
|
| |
Пост N: 1153
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.02.09 12:18. Заголовок: // в первом приближ..
// в первом приближении hInternet := InternetOpen() if hInternet <> 0 // бла бла бла endif ps what32.lib
|
|
|
|
| постоянный участник
|
Пост 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 Что делать ?
|
|
|
|
| |
Пост N: 1154
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.02.09 10:33. Заголовок: Andrey пишет: Что д..
Andrey пишет: Прилинкуй c:\bcc55\lib\wininet.lib
|
|
|
|
| постоянный участник
|
Пост 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" ?
|
|
|
|
| |
Пост N: 1155
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.02.09 14:47. Заголовок: Тогда вот так ;) ? I..
Тогда вот так ;) ? InternetGetConnectedState()
|
|
|
|
| постоянный участник
|
Пост N: 794
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.02.09 18:20. Заголовок: Dima пишет: Тогда в..
Dima пишет: цитата: | Тогда вот так ;) ? InternetGetConnectedState() |
| Возвращает .Т. даже когда подключена просто локальная сеть. Какие еще будут предложения ?
|
|
|
|
| модератор
|
Пост 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 |
|
|
|
|
|
| постоянный участник
|
Пост N: 795
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.02.09 20:51. Заголовок: Спасибо Григорий !!!..
Спасибо Григорий !!! Чувствуется рука мастера .... Буду пробовать.....
|
|
|
|
| |
Пост N: 1156
Зарегистрирован: 17.05.05
|
|
Отправлено: 25.02.09 08:29. Заголовок: Andrey пишет: Возвр..
Andrey пишет: цитата: | Возвращает .Т. даже когда подключена просто локальная сеть. |
| у меня возвращает .f. в этом случае
|
|
|
|
| постоянный участник
|
Пост N: 797
Зарегистрирован: 12.09.06
|
|
Отправлено: 25.02.09 23:22. Заголовок: Dima пишет: у меня..
Dima пишет: цитата: | у меня возвращает .f. в этом случае |
| У меня городская локальная сеть, и возвращает .T. даже если VPN-соединение отключено.
|
|
|
|
| постоянный участник
|
Пост 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 его ищет. Можно ли как нибудь ускорить этот процесс ?
|
|
|
|
|
| постоянный участник
|
Пост 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
|
|
|
|
| постоянный участник
|
Пост N: 800
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.02.09 14:40. Заголовок: Спасибо БОЛЬШОЕ Петр..
Спасибо БОЛЬШОЕ Петр ! Твоя версия самая быстрая .... Выдает моментально ! Видать вызов DLL слишком медленный... Но вариант Григория все равно пригодиться для использования в других случаях.
|
|
|
|
| постоянный участник
|
Пост N: 1357
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.06.10 23:12. Заголовок: Возвращаюсь опять к ..
Возвращаюсь опять к этой теме ! Петр, не работает твой последний вариант !!! Исходник: Скрытый текст FUNCTION MAIN() LOCAL lInet lInet := IsConnected() if lInet ? "Есть ИНТЕРНЕТ....." else ? "Нет ИНТЕРНЕТА....." endif wait RETURN NIL #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
| Сейчас у меня установлен роутер, так вот на нем возращает: ? "Нет ИНТЕРНЕТА....." Что делать ? Можно ли создать универсальный вариант: для VPN и для роутеров ?
|
|
|
|
| постоянный участник
|
Пост N: 1358
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.06.10 23:18. Заголовок: Вариант Григория из ..
Вариант Григория из МиниГУИ (папка samples\Advanced\Inet_Checker) работает сейчас быстро и правильно, но портировать код на хХарбор не могу. Можно ли заменить вызов CallDll32() на CallDll() из хХарбора ? и как тогда будет выглядеть код ? Программа Григория: Скрытый текст FUNCTION MAIN() LOCAL lInet lInet := IsConnected() if lInet ? "Есть ИНТЕРНЕТ....." else ? "Нет ИНТЕРНЕТА....." endif wait RETURN NIL // 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
| И к нему еще нужно цеплять hdll.prg....
|
|
|
|
| |
Пост N: 1738
Зарегистрирован: 17.05.05
|
|
Отправлено: 07.06.10 23:27. Заголовок: Andrey Функции IsNe..
Andrey Функции IsNetworkAlive , IsDestinationReachable из какой оперы (библиотеки) ?
|
|
|
|
| постоянный участник
|
Пост N: 1359
Зарегистрирован: 12.09.06
|
|
Отправлено: 07.06.10 23:43. Заголовок: Dima пишет: Функции..
Dima пишет: цитата: | Функции IsNetworkAlive , IsDestinationReachable из какой оперы (библиотеки) ? |
| Из sensapi.lib ! Ну обижаешь .... Уже выучился чуть-чуть.... Прицеплена к программе Петра ! Не писал бы об этом, если работало...
|
|
|
|
| |
Пост N: 1739
Зарегистрирован: 17.05.05
|
|
Отправлено: 07.06.10 23:46. Заголовок: Andrey пишет: Из se..
Andrey пишет: Пардон , не заметил.
|
|
|
|
| Администратор
|
Пост N: 1483
Зарегистрирован: 23.05.05
|
|
Отправлено: 08.06.10 08:49. Заголовок: Andrey пишет: Хочу ..
Andrey пишет: цитата: | Хочу сделать добавление в БАЗУ-LetoDB из локальной БАЗЫ с компьютера при появление интернет соединения ! |
| Андрей, так ты эту функцию добавляешь в сервер letodb ?
|
|
|
|
| постоянный участник
|
Пост N: 1360
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.06.10 09:30. Заголовок: Pasha пишет: Андрей..
Pasha пишет: цитата: | Андрей, так ты эту функцию добавляешь в сервер letodb ? |
| Да хотел, потом передумал. Делаю отдельную программу для клиента, чтоб когда ИНЕТ включался, то на сервер копировались (синхронизировались) записи с клиента ! ИНЕТ же отрубается, а юзверу не объяснишь, что это не проблемы моей программы.
|
|
|
Ответов - 38
, стр:
1
2
All
[только новые]
|
|