![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать, что ;Соединение ;установлено?
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 есть связь
Успехов.