Delphi - определить подключение к Интернету.
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Здравствуйте!
Такая проблема : нужно, чтобы программа висящая в фоновом режиме отреагировала
на подключение компьютера к интернету(как MailAgent или автоматическое обновление программ). Проверять подключение по таймеру - как-то нерационально, может есть какое-нибудь событие windows?
Такая проблема : нужно, чтобы программа висящая в фоновом режиме отреагировала
на подключение компьютера к интернету(как MailAgent или автоматическое обновление программ). Проверять подключение по таймеру - как-то нерационально, может есть какое-нибудь событие windows?
Ни что так не ограничивает фантазию программиста, как компилятор...
По-моему, в разделе WinAPI такая тема была где-то год назад.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Да в общем-то проблему решил - поймал нужное сообщение WinSight'ом.
--------------------
Видимо ошибся, что то не то поймал - похоже никакого сообщения не генерируется.
--------------------
Видимо ошибся, что то не то поймал - похоже никакого сообщения не генерируется.
Ни что так не ограничивает фантазию программиста, как компилятор...
Перерыл все, начиная с 2005 года - ничего такого не нашел.Хыиуду писал(а):По-моему, в разделе WinAPI такая тема была где-то год назад.
Пробовал проверку по таймеру - найданный в инете код проверки при выполнении грузит процессор на 10-15 % - даже если выполнять раз в 3-5 секунд - все равно как-то не очень...
Ни что так не ограничивает фантазию программиста, как компилятор...
А если тупо раз в десять секунд пинговать яндекс?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Пытался делать примерно так, выполнял по таймеру такой код:Хыиуду писал(а):А если тупо раз в десять секунд пинговать яндекс?
[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]
Просто думал, что есть более рациональный способ.
Ни что так не ограничивает фантазию программиста, как компилятор...
InternetGetConnectedState ?
Даже самый дурацкий замысел можно воплотить мастерски
Во-первых вопрос, из какого модуля эта функция? Я такой что-то не нашел.AiK писал(а):InternetGetConnectedState ?
Во-вторых, я просто думал, что "умные" программеры MS предусмотрели какой-нибудь способ оповещения приложений о подключении к интернету(типа как оповещение всех окон о завершении работы), а так все равно предется вызывать функцию по таймеру.
Ни что так не ограничивает фантазию программиста, как компилятор...
На мой взгляд это всё к вопросу о кураторстве. Вопрос системный и его задавать логично было в разделе WinAPI etc.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.
Даже самый дурацкий замысел можно воплотить мастерски
Я задавал вопрос в этом разделе, так как писал именно на Delphi, к тому же я не исключал вариант, что есть "чисто дельфовский" подход к решению этой проблемы.
Ни что так не ограничивает фантазию программиста, как компилятор...