Delphi - определить подключение к Интернету.

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

MOTOCoder
Сообщения: 542
Зарегистрирован: Пн янв 14, 2008 8:27 pm
Откуда: Россия, Псков

Delphi - определить подключение к Интернету.

Сообщение MOTOCoder » Вт фев 05, 2008 4:27 pm

Здравствуйте!
Такая проблема : нужно, чтобы программа висящая в фоновом режиме отреагировала
на подключение компьютера к интернету(как MailAgent или автоматическое обновление программ). Проверять подключение по таймеру - как-то нерационально, может есть какое-нибудь событие windows?
Ни что так не ограничивает фантазию программиста, как компилятор...

Хыиуду
Сообщения: 2388
Зарегистрирован: Вс мар 06, 2005 9:03 pm
Откуда: Москва
Контактная информация:

Re: Delphi - определить подключение к Интернету.

Сообщение Хыиуду » Ср фев 06, 2008 10:50 am

По-моему, в разделе WinAPI такая тема была где-то год назад.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.

MOTOCoder
Сообщения: 542
Зарегистрирован: Пн янв 14, 2008 8:27 pm
Откуда: Россия, Псков

Re: Delphi - определить подключение к Интернету.

Сообщение MOTOCoder » Ср фев 06, 2008 5:31 pm

Да в общем-то проблему решил - поймал нужное сообщение WinSight'ом.
--------------------
Видимо ошибся, что то не то поймал - похоже никакого сообщения не генерируется.
Ни что так не ограничивает фантазию программиста, как компилятор...

MOTOCoder
Сообщения: 542
Зарегистрирован: Пн янв 14, 2008 8:27 pm
Откуда: Россия, Псков

Re: Delphi - определить подключение к Интернету.

Сообщение MOTOCoder » Ср фев 06, 2008 11:20 pm

Хыиуду писал(а):По-моему, в разделе WinAPI такая тема была где-то год назад.
Перерыл все, начиная с 2005 года - ничего такого не нашел.

Пробовал проверку по таймеру - найданный в инете код проверки при выполнении грузит процессор на 10-15 % - даже если выполнять раз в 3-5 секунд - все равно как-то не очень...
Ни что так не ограничивает фантазию программиста, как компилятор...

Хыиуду
Сообщения: 2388
Зарегистрирован: Вс мар 06, 2005 9:03 pm
Откуда: Москва
Контактная информация:

Re: Delphi - определить подключение к Интернету.

Сообщение Хыиуду » Чт фев 07, 2008 9:44 am

А если тупо раз в десять секунд пинговать яндекс?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.

MOTOCoder
Сообщения: 542
Зарегистрирован: Пн янв 14, 2008 8:27 pm
Откуда: Россия, Псков

Re: Delphi - определить подключение к Интернету.

Сообщение MOTOCoder » Чт фев 07, 2008 12:59 pm

Хыиуду писал(а):А если тупо раз в десять секунд пинговать яндекс?
Пытался делать примерно так, выполнял по таймеру такой код:
[syntax='delphi']
function CheckRASConnections: string;
const
MaxEntries = 100;
var
BufSize: Integer;
NumEntries: Integer;
Entries: array[1..MaxEntries] of TRasConn;
begin
Entries[1].dwSize := SizeOf(TRasConn);
Bufsize := SizeOf(TRasConn) * MaxEntries;
RasEnumConnections(@Entries[1], BufSize, NumEntries);
if numentries > 0 then
result := strpas(@Entries[1].szEntryName)
else
Result := 'Disconnected';
end;
[/syntax]

Просто думал, что есть более рациональный способ.
Ни что так не ограничивает фантазию программиста, как компилятор...

Аватара пользователя
AiK
Сообщения: 2271
Зарегистрирован: Пт фев 13, 2004 6:14 pm
Откуда: СПб
Контактная информация:

Re: Delphi - определить подключение к Интернету.

Сообщение AiK » Пн мар 31, 2008 5:00 pm

InternetGetConnectedState ?
Даже самый дурацкий замысел можно воплотить мастерски

MOTOCoder
Сообщения: 542
Зарегистрирован: Пн янв 14, 2008 8:27 pm
Откуда: Россия, Псков

Re: Delphi - определить подключение к Интернету.

Сообщение MOTOCoder » Пн мар 31, 2008 5:06 pm

AiK писал(а):InternetGetConnectedState ?
Во-первых вопрос, из какого модуля эта функция? Я такой что-то не нашел.
Во-вторых, я просто думал, что "умные" программеры MS предусмотрели какой-нибудь способ оповещения приложений о подключении к интернету(типа как оповещение всех окон о завершении работы), а так все равно предется вызывать функцию по таймеру.
Ни что так не ограничивает фантазию программиста, как компилятор...

Аватара пользователя
AiK
Сообщения: 2271
Зарегистрирован: Пт фев 13, 2004 6:14 pm
Откуда: СПб
Контактная информация:

Re: Delphi - определить подключение к Интернету.

Сообщение AiK » Пн мар 31, 2008 5:18 pm

Requirements
Client Requires Windows Vista, Windows XP, Windows 2000 Professional, Windows NT Workstation 4.0, Windows Me, Windows 98, or Windows 95.
Server Requires Windows Server 2008, Windows Server 2003, Windows 2000 Server, or Windows NT Server 4.0.
Version Requires Internet Explorer 4.0 or later.
Header

Declared in Wininet.h.
Library

Use Wininet.lib.
DLL

Requires Wininet.dll.
На мой взгляд это всё к вопросу о кураторстве. Вопрос системный и его задавать логично было в разделе WinAPI etc.
Даже самый дурацкий замысел можно воплотить мастерски

MOTOCoder
Сообщения: 542
Зарегистрирован: Пн янв 14, 2008 8:27 pm
Откуда: Россия, Псков

Re: Delphi - определить подключение к Интернету.

Сообщение MOTOCoder » Пн мар 31, 2008 5:21 pm

Я задавал вопрос в этом разделе, так как писал именно на Delphi, к тому же я не исключал вариант, что есть "чисто дельфовский" подход к решению этой проблемы.
Ни что так не ограничивает фантазию программиста, как компилятор...

Ответить