Как проверить соединение с интернетом.
Часто приложению, которое работает в интернете, требуется знать, подключён пользователь к интернету или нет. Предлагаю Вам довольно гибкое решение этого вопроса. Совместимость: Delphi 3.x (или выше)
Для работы Вам необходимо импортировать функцию InetIsOffline из URL.DLL:
function InetIsOffline(Flag: Integer): Boolean; stdcall; external 'URL.DLL';
а затем поместить в программу простой вызов функции для проверки статуса соединения:
if InetIsOffline(0) then ShowMessage('This computer is not connected to Internet!') else ShowMessage(You are connected to Internet!');
Эта функция возвращает TRUE если соединение с интернетов отсутствует, или FALSE если соединение установлено.
Замечание: параметр Flag игнорируется,
соответственно используем ноль. Эта DLL обычно проинсталлирована на большинстве к!
омпьютеров. Она также существует в Win98 либо поставляется с Internet Explorer 4 или выше, Office 97 и т.д.. Более подробно можно прочитать в MSDN. Оригинал: http://msdn.microsoft.com/library/psdk/shellcc/shell/Functions/InetIsOffline.htm
Комментарий от Ефремова Александра (aleks@vilgus.kamchatka.ru) Зашел на официальный сайт Microsoft по MSDN где черным по белому написано, что функция эта выдает false не только, когда комп подключен к интернету, но и когда ЕЩЕ НЕ БЫЛО ПОПЫТОК подключения (or if no attempt has yet been made to connect to the Internet). Ну и скажите
мне теперь, какой у этой функции тогда смысл ? Да, умом Microsoft не понять (к со!
жалению). Помогите найти нормальный способ проверки подключения к инет (online).
Merlin: самым нормальны, мне кажется, пинговать какой-то адрес в интернете, лучше два :) но это тоже связано с проблемой, что может запускаться установка связи, когда не надо.
Комментарий от Dmitry Shkil (Mitya@bigmir.net) ShkilSoft
function
InternetConnected: Boolean; var dwConnectionTypes: D!
WORD; begin dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY; Result := InternetGetConnectedState(@dwConnectionTypes, 0); end;
Хотя возможно через RAS API. Компоненты можно поискать на www.torry.net Kondakov (owl@conecs.lviv.ua) Я попробовал это на основе предложения Dmitriya Работает вроде. . Через Button or Activate
function Interne!
tGetConnectedState(lpdwFlags:LPDWORD; dwReserved: DWORD): BOOLEAN; stdcall; external winetdll name 'InternetGetConnectedState';
{$R *.DFM}
procedure TForm1.CheckState(Sender: TObject); var dwConnectionTypes: DWORD; begin dwConnectionTypes:=IC_MODEM+IC_LAN+IC_PROXY; if InternetGetConnectedState(@dwConnectionTypes,0) then ShowMessage('Youa connected') else ShowMessage('No Connection'); end;
end.
Комментарий от "Vladimir Artemov" Из MSDN: You cannot rely solely on the fact that InternetGetConnectedState returning TRUE means that you have a valid active Internet connection. It is impossible for InternetGetConnectedState to determine if the entire connection to the Internet is functioning without sending a request to a server. This is why
you need to send a request to determine if you are really connected or not. You can b!
e assured however that if InternetGetConnectedState returns TRUE, that attempting your connection will NOT cause you to be prompted to connect to the default Internet Service Provider.
Ну не получится таким образом ДОСТОВЕРНО проверить! Надо либо подключаться, либо пинговать.
Как программно узнать директорию
Господа, подскажите как программно узнать директорию в которой находится файл или куда был установлен .Например word....
Автокалькуляция в связанных таблицах
Имеется две связанные таблицы по типу "владелец-детали". Необходимо в первой таблице(владелец) в вычисляемое поле ...
Delphi 6: первое знакомство
Ну вот наконец-то, в руках коробочка с диском и бумажкой, на которой кто-то старательно вывел фломастером Delphi 6. Из коробочки вынимается диск, вставляется в cd-rom и...
Delphi 6. Базы данных и приложения
В книге предпринята попытка дать читателю целостное представление о процессе разработки программного обеспечения для реляционных баз данных. В рамках поставленной цели авторами решены следующие задачи: рассмотрены основы языка Object Pascal на примере создания консольных приложений; рассмотрены объектно-ориентированные возможности языка Object Pascal и технология визуального программирования; описаны основные принципы работы с SQL-ссрвером InterBase; изложена методика взаимодействия программ, созданных в среде Delphi, с базами данных различного типа, в частности, SQL-сервером InterBase: рассмотрены основы проектирования баз данных с использованием программы ERwin; описана "методика разработки клиентского приложения для доступа к базам данных с использованием библиотек динамической загрузки, а также популярных программ Word и Excel для создания отчетов. На примере
БД "Учебные компьютерные курсы" рассмотрен процесс разработки программного обеспечения, !
начиная с вопросов проектирования и заканчивая подготовкой отчетов. Книга может быть использована в качестве основы курса лекции по соответствующей дисциплине. Книга предназначена для старшеклассников, студентов, аспирантов, преподавателей и пользователей ПК, интересующихся программированием.
Автор: Кандзюба С. "ДиаSoft"
Разработка баз и банков данных, Access? Delphi, Oracle Все о разработке и проектировании баз данных, начиная с модели "сущность-связь", заканчивая готовым приложением на MS Access, Delphi, Builder... Описаяние и учебники по SQL, MySQL, MS Access, BDE... ...
» Оценка сайта: 2
Хокку дня
Лист исписанный. Создаёт бесконечность - Падает в воду.
Афоризмы
Живём только раз, да и то не каждый день.
Фраза дня
Солнце - это то, что светит, когда нет луны.
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В городе Аннистон в Алабаме (США) запрещено появляться в джинсах на главной улице.
На Аляске (США) нельзя рассматривать лосей с самолета
И на закуску коротенький анекдот
Инструктор по вождению начинающей молоденькой курсантке: - Для начала неплохо - но в следующий раз имейте ввиду, что ручка переключения скоростей находится левее...