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




Пост 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 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1362
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.06.10 14:47. Заголовок: Andrey пишет: Вариа..


Andrey пишет:

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



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


Так кто же поможет в этом нелегком деле ???

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




Пост N: 1742
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.06.10 15:01. Заголовок: CallDll( <pFunct..


CallDll( <pFunction> [,<xParams,...>] ) --> xResult

// The example implements a simple command line utility
// that opens a file using the associated file viewer.

PROCEDURE Main( cFile )
LOCAL nDll, pFunc

IF cFile == NIL .OR. .NOT. File( cFile )
CLS
? "File name must be specified"
QUIT
ENDIF

nDll := DllLoad( "Shell32.dll" )
pFunc := GetProcAddress( nDll, "ShellExecute" )

? CallDll( pFunc, 0, "open", cFile, NIL, NIL, 1 )

DllUnload( nDll )
RETURN


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




Пост N: 1363
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.06.10 16:32. Заголовок: Dima пишет: CallDll..


Dima пишет:

 цитата:
CallDll( <pFunction> [,<xParams,...>] ) --> xResult



Так это кусок из Хелпа.... А мне вот это переделать нужно:
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

Там кол-во передаваемых параметров разное !

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





Пост N: 13
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 08.06.10 16:48. Заголовок: в xHarbour есть функ..


в xHarbour есть функция DllCall(), попробуй использовать её.


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




Пост N: 1364
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.06.10 17:38. Заголовок: santy пишет: в xHar..


santy пишет:

 цитата:
в xHarbour есть функция DllCall(), попробуй использовать её.



Вы меня извините, а мое предыдущее сообщение вы читали ? Или только заголовок начального сообщения ?

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


Пост N: 968
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 08.06.10 21:24. Заголовок: Это у меня Опера что..



Андрей, santy дал нормальный совет, в чем дело?
 
#define DC_CALL_STD 0x0020
#define INTERNET_CONNECTION_MODEM 1
#define INTERNET_CONNECTION_LAN 2
#define INTERNET_CONNECTION_PROXY 4
#define INTERNET_RAS_INSTALLED 16
#define INTERNET_CONNECTION_OFFLINE 32
#define INTERNET_CONNECTION_CONFIGURED 64
// Flag for InternetCheckConnection
#define FLAG_ICC_FORCE_CONNECTION 1

proc main()
local nFlags := 0
local lRet := .f.

if DllCall( "WININET.DLL", DC_CALL_STD, "InternetGetConnectedState", @nFlags, 0 ) == 1
if DllCall( "WININET.DLL", DC_CALL_STD, "InternetCheckConnection", "http://www.google.com", FLAG_ICC_FORCE_CONNECTION, 0 ) == 1
lRet := .t.
endif
endif

? lRet

return


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




Пост N: 1365
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.06.10 21:35. Заголовок: Петр пишет: Андрей,..


Петр пишет:

 цитата:
Андрей, santy дал нормальный совет, в чем дело?


Так я и про это писал.
По хелпу [CallDll( <pFunction> [,<xParams,...>] ) --> xResult] там 2 параметра, я же не знал, что можно больше !
До этого Дима мне про эту функцию написал, я ему написал про 2 параметра.
А потом santy пишет что типа воспользуйся этой функцией ! Ну я уже про 2 параметра ему писать не стал ! Посчитал за повтор...
Извини santy !

Спасибо Петр за исправленный исходник. Теперь мне понятно, как в таких случаях делать !


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


Пост N: 969
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 09.06.10 06:00. Заголовок: Andrey пишет: По хе..


Andrey пишет:

 цитата:
По хелпу [CallDll( <pFunction> [,<xParams,...>] ) --> xResult] там 2 параметра, я же не знал, что можно больше !
До этого Дима мне про эту функцию написал, я ему написал про 2 параметра.
А потом santy пишет что типа воспользуйся этой функцией !


Во первых CallDll функция с переменным числом аргументов и на это четко указывают три точки в определении функции;
Во вторых CallDll и DllCall - это две разные функции.


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




Пост N: 1366
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.06.10 07:48. Заголовок: Петр пишет: и на эт..


Петр пишет:

 цитата:
и на это четко указывают три точки в определении функции;


Спасибо Петр !
Теперь буду знать !

Функцию твою вставил к себе в программу ! Работает !!!

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





Пост N: 14
Зарегистрирован: 16.12.08
ссылка на сообщение  Отправлено: 09.06.10 11:41. Заголовок: Andrey пишет: Извин..


Andrey пишет:

 цитата:
Извини santy !



Пробежали

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




Пост N: 2917
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.07.13 20:17. Заголовок: Возник вопрос, по пр..


Возник вопрос, по проверке работоспособности сайта.
Не долго думая, взял пример Григория из поставки МиниГУИ (папка samples\Advanced\Inet_Checker):
и заменил адрес http://www.google.com на адрес проверяемого сайта.
Если проверяемый сайт "лежит" (не открывается в браузере), то функция из примера IsConnected() все равно выдает .T.
Что есть - неправильно.

Какие есть еще варианты/функции проверки работоспособности сайта ?

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




Пост N: 3324
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.07.13 20:49. Заголовок: Andrey пишет: Если ..


Andrey пишет:

 цитата:
Если проверяемый сайт "лежит" (не открывается в браузере)


Наводящий вопрос: пинг на "лежащий" сайт проходит нормально ?

PS
Вот такого сайта нет и что выдаст тест на него ?
http://www.skdjhfksjdhfkjsd.com/



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




Пост N: 2918
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.07.13 21:21. Заголовок: Dima пишет: Наводящ..


Dima пишет:

 цитата:
Наводящий вопрос: пинг на лежащий сайт проходит нормально ?


Да ! Нормально.
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 6мсек, Максимальное = 7 мсек, Среднее = 6 мсек


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




Пост N: 3325
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.07.13 21:26. Заголовок: Andrey А на тот что..


Andrey
А на тот что в PS ?

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




Пост N: 2919
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.07.13 21:56. Заголовок: Dima пишет: Вот так..


Dima пишет:

 цитата:
Вот такого сайта нет и что выдаст тест на него ?
http://www.skdjhfksjdhfkjsd.com/


Переделанный пример (samples\Advanced\Inet_Checker) - выдает .F.
Мой "висящий" сайт - выдает .T.

Пример короткий: Скрытый текст

Только нужно указать для сборки calldll.lib

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




Пост N: 3326
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.07.13 22:10. Заголовок: Ответ как бы сам нап..


Ответ как бы сам напрашивается. Надо анализировать HTML форму или что там на сайте.
Пример есть тут
Наверное (не уверен) но это самый правильный подход , ведь сайту могут и DDOS устроить , так
что анализ не помешает.

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



Пост N: 11
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 23.07.13 22:19. Заголовок: Все же уже есть - minigui\samples\basic\socket - TestHttp


Все же уже есть
minigui\samples\basic\socket - TestHttp
Если главная страница сайта прочитана и не пустая - сайт доступен.

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




Пост N: 2920
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.07.13 23:21. Заголовок: petr707 пишет: Все ..


petr707 пишет:

 цитата:
Все же уже есть


То что надо ! "Подвисший" сайт выдает нулевую строку !
Спасибо !

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

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