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

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

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

05 фев 2008, 16:27

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

06 фев 2008, 10:50

По-моему, в разделе WinAPI такая тема была где-то год назад.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
MOTOCoder
Сообщения: 542
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

06 фев 2008, 17:31

Да в общем-то проблему решил - поймал нужное сообщение WinSight'ом.
--------------------
Видимо ошибся, что то не то поймал - похоже никакого сообщения не генерируется.
Ни что так не ограничивает фантазию программиста, как компилятор...
MOTOCoder
Сообщения: 542
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

06 фев 2008, 23:20

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

Пробовал проверку по таймеру - найданный в инете код проверки при выполнении грузит процессор на 10-15 % - даже если выполнять раз в 3-5 секунд - все равно как-то не очень...
Ни что так не ограничивает фантазию программиста, как компилятор...
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

07 фев 2008, 09:44

А если тупо раз в десять секунд пинговать яндекс?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
MOTOCoder
Сообщения: 542
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

07 фев 2008, 12:59

Хыиуду писал(а):А если тупо раз в десять секунд пинговать яндекс?
Пытался делать примерно так, выполнял по таймеру такой код:
[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
Сообщения: 2274
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

31 мар 2008, 18:00

InternetGetConnectedState ?
Даже самый дурацкий замысел можно воплотить мастерски
MOTOCoder
Сообщения: 542
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

31 мар 2008, 18:06

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

31 мар 2008, 18:18

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, 20:27
Откуда: Россия, Псков

31 мар 2008, 18:21

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