Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать, что ;Соединение ;установлено?


Wic ©   (2001-10-29 18:54:00) 

Как перехватить сообщение стандартной "звонилки" Windows, что соединение (удаленный доступ) установлено?


Oleg1   (2001-11-07 07:53:00) [1]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;{ Flags for InternetGetConnectedState }
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";
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}




function InternetConnected: Boolean;
var
dwConnectionTypes: DWORD;
//Result: boolean;
begin
dwConnectionTypes := INTERNET_CONNECTION_MODEM+
INTERNET_CONNECTION_LAN+
INTERNET_CONNECTION_PROXY;
Result:= InternetGetConnectedState(@dwConnectionTypes, 0);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if InternetConnected = true then showmessage("Есть соединение")else showmessage("Нет соединения");
end;

end.


Skiv   (2001-11-05 09:51:00) [2]

Точно работает. Только с уточнением (i_connected:integer)
в противном случае вылетает с ошибкой.


ASTARD   (2001-11-04 22:24:00) [3]

Еще можно посмотреть здесь в ФАК !


Dabus   (2001-11-04 20:51:00) [4]

В реестре ключ есть, он указывает на наличие соединения Dial-Up.

var:
i_connected: byte;
r0: TRegistry;

...
...

r0 := TRegistry.Create;
r0.RootKey := HKEY_LOCAL_MACHINE;
r0.OpenKey("System\CurrentControlSet\Services\RemoteAccess", False);
r0.ReadBinaryData("Remote Connection",i_connected,SizeOf(i_connected));
r0.Free;
// i_connected=0 нет связи /=1 есть связь

Успехов.


Наверх

Титульная страница Поиск, карта сайта Написать письмо