Текущий архив: 2003.02.06;
Скачать: CL | DM;
ВнизE-mail Найти похожие ветки
← →
Groove_ (2002-12-12 16:05) [0]Люди, программисты, кодеры, и все остальные HELP!!!
Нужно срочно узнать в Online комп или нет, если да, то может ли он отправить почту... HELP HELP HELP!!!
← →
Song (2002-12-12 16:28) [1]В FAQ есть способы, но 100% нет способа.
← →
Maksss (2002-12-12 16:48) [2]Пинговать microsoft.com
← →
SemFLY (2002-12-13 02:36) [3]Вот пример,
const
...........
INTERNET_CONNECTION_MODEM = 1;
INTERNET_CONNECTION_LAN = 2;
INTERNET_CONNECTION_PROXY = 4;
INTERNET_CONNECTION_MODEM_BUSY = 8;
const winetdll = "wininet.dll";
function InternetGetConnectedState(lpdwFlags: LPDWORD; dwReserved:DWORD):
BOOL; stdcall; external winetdll name "InternetGetConnectedState";
implementation
// Проверяем соединение с интернетом
function InternetConnected: Boolean;
var
dwConnectionTypes: DWORD;
begin
dwConnectionTypes := INTERNET_CONNECTION_MODEM +
INTERNET_CONNECTION_LAN +
INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;
...........
-------
далее ....
----------
if InternetGetConnectedState(@dwConnectionTypes,0) then
begin
If (dwConnectionTypes and INTERNET_CONNECTION_MODEM) = 1 then
begin
// тут твои действия, если есть коннект...
end;
end;
end;
← →
Ihor Osov'yak (2002-12-13 03:04) [4]http://delphi.mastak.com/cgi-bin/forum.pl?look=1&id=1039624919&n=2
Обратите вниманее на постинг вашего покорного слуги. Несколько более детализировано Maksss (12.12.02 16:48),SemFLY © (13.12.02 02:36)
← →
SemFLY (2002-12-13 03:35) [5]Ihor Osov"yak, если ты имеешь ввиду, что я у тя содрал пример и сунул сюда, то ты ошибаешься...
← →
Ihor Osov'yak (2002-12-13 12:21) [6]2 SemFLY © (13.12.02 03:35)
Нет, не имею ввиду... В каждом модуле есть begin end, а также вполне вероятно, что юзаются примерно одинаковые апишные вызовы, особеннно если решаются похожие задачи ... И вполне вероятно, что в пределах 10-15 строчек код, написанный независимо, будет 1 к одному ...
Зы. Если Вас очень интересует, откуда этот коду меня - я уже не помню, писал его сам, или выдернул с какой-то конференции, и если выдернул - то не помню, подвергал ли его модернизации. Хотя учитывая стиль имен и ссылку на W2k ddk - вероятнее всего, я его как минимум комбинировал из нескольких чужих фрагментов с некоторой отсебятиной ...
Не помню, ибо кода я пишу много и довольно часто пользуюсь поиском по тому же гуглю с целью поиска готовых решений. Если юзается чужая идея, или код по интилекту немного больше чем begin end, то конечно, я сохраняю ссылку на первоисточник... Но имхо, приведенный фрагмент можно расценивать по уровню ноу-хау почти еквивалантом пустого блока begin end; :-).
Зы - а в своем первом постинге я всего лишь претендовал на более детальное расписывание Вашего варианта решения ...
Зы2. Не подозревайте, что другие подозревают Вас... И жызнь станет лучше ...
← →
SemFLY (2002-12-13 14:40) [7]Ihor Osov"yak, всё оки :))
← →
SemFLY (2002-12-13 14:45) [8]Ihor Osov"yak, хотел у тебя спросить...
Используя
function InternetGetConnectedState(lpdwFlags: LPDWORD; dwReserved:DWORD):
BOOL; stdcall; external winetdll name "InternetGetConnectedState";
У тебя всегда она определяет момент разъединения с интернетом, у меня это происходит иногда, через раз, иногда определит(подряд если производить connect/disconnect/connect... и т.д.) на раз 3-ий - 4-ый она уже не определят, что соединение было разорвано :(
Момент соединения она определят всегда 100%, а вот разъединения не всегда :(
← →
Ihor Osov'yak (2002-12-14 00:35) [9]не скажу. Я работал с InternetGetConnectedStateEx, и то только в одном проекте, делался под заказ для конкретного заказчика. Гоняет уже с полгода, периодически делаю ему мелкие апдейты, но он ни разу не приставал с тем, что неверно определяется факт подключения к инету...
Зы, по моим прикидкам функция юзается несколько раз в час в паре disconnect/connect, само изделие в штатном режиме работает практически круглосуточно (заказчик несколько раз прысылал лог-файлы, там видно было что программа порой не останавливалась по несколько дней).
← →
SemFLY (2002-12-14 03:28) [10]
> (заказчик несколько раз прысылал лог-файлы, там видно было
> что программа порой не останавливалась по несколько дней).
т.е. ты хочешь сказать, что функция InternetGetConnectedStateEx всегда определяла момент разъединения с интернетом...
← →
Ihor Osov'yak (2002-12-14 11:24) [11]2 SemFLY © (14.12.02 03:28)
нет, я так не говорил. Я сказал, что использовал InternetGetConnectedStateEx, а не InternetGetConnectedState.
Причем я ее использовал на предмет выяснения того, если ли коннект к инету в определенный момент времени (для чего она и предназначена), а в случае положительного ответа еще делал попытку соединения с очччень далеким сервером, см. как вариант Maksss (12.12.02 16:48)...
Имхо, эта функция не предназначена для ловли момента обрыва/отключения от инета...
← →
Ihor Osov'yak (2002-12-14 11:31) [12]по поводу определения момента разьединения -
http://v-programs.narod.ru/rasapi.html
http://v-programs.narod.ru/tvdial.html
http://v-programs.narod.ru/progr.html
там кажется есть решение этой задачи. Насколько качественное - не могу судить, детально не смотрел... Но звонилку/учетчик времени соединения этого человека юзаю уже два года без особых нареканий
← →
Набережных С. (2002-12-14 13:54) [13]RasConnectionNotification
Страницы: 1 вся ветка
Текущий архив: 2003.02.06;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.01 c