![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как програмно отключить соединение с сетью. [D6, Win95/98]
Beginner © (2002-03-21 18:30:00)Как програмно отключить соединение с сетью или точнее модем.
Набережных С. (2002-03-21 20:49:00) [1]
uses
windows;
procedure CloseConnections;
implementation
const
RAS_MaxDeviceType = 16;
RAS_MaxEntryName = 256;
RAS_MaxDeviceName = 128;
RASAPI = "rasapi32.dll";
type
THRasConn = Longint;
TRasConnState = Integer;
LPRasConn = ^TRasConn;
TRasConn = record
dwSize : Longint;
hrasconn : THRasConn;
szEntryName : Array[0..RAS_MaxEntryName] of AnsiChar;
szDeviceType : Array[0..RAS_MaxDeviceType] of AnsiChar;
szDeviceName : Array[0..RAS_MaxDeviceName] of AnsiChar;
end;
TRasConnStatus = record
dwSize : Longint;
rasconnstate : TRasConnState;
dwError : LongInt;
szDeviceType : Array[0..RAS_MaxDeviceType] of AnsiChar;
szDeviceName : Array[0..RAS_MaxDeviceName] of AnsiChar;
end;
function RasGetConnectStatus(hConn: THRasConn; var lpStatus: TRasConnStatus): Longint; stdcall;
external RASAPI name "RasGetConnectStatusA";
function RasEnumConnections(RasConnArray: LPRasConn; var lpcb: Longint; var lpcConnections: Longint): Longint; stdcall;
external RASAPI name "RasEnumConnectionsA";
function RasHangUp(hConn: THRasConn): Longint; stdcall;
external RASAPI name "RasHangUpA";
procedure CloseConnections;
var
Buf: array[0..15] of TRasConn;
n,aConn,aSize:integer;
St:TRasConnStatus;
begin
aSize:= SizeOf(Buf);
FillChar(Buf,aSize,0);
Buf[0].dwSize:=SizeOf(TRasConn);
n:=RasEnumConnections(@Buf[0],aSize,aConn);
if(n = 0)and(aConn > 0)then
while aConn > 0 do
begin
Dec(aConn);
RasHangUp(Buf[aConn].hrasconn);
while RasGetConnectStatus(Buf[aConn].hrasconn ,St) = 0 do
Sleep(0);
end;
end;
end.
На "Королевстве" есть статья "RasAPI для непродвинутых" или типа того.