Разрыв Dial-Up соединения

Советы » Dial-up » Разрыв Dial-Up соединения

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Разрыв Dial-Up соединения

Прекращает активное Dial-Up соединение. Возвращает True в
случае успеха или False, если соединение разорвать невозможно
(например при полном или частичном отсутствии оного :-).

Зависимости: Windows
Автор:       Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright:   Dimka Maslov
Дата:        16 января 2003 г.
***************************************************** }

type

TRasConn = record

Size: DWORD; Handle: THandle; Name: array

[0..20] of

AnsiChar; end

; TRasEnumConnections = function

(var

RasConn: TRasConn; var

Size: DWORD; var

Connections: DWORD): DWORD stdcall

; TRasHangUp = function

(Handle: THandle): DWORD stdcall

; function

DisconnectDialUp: Boolean; var

Lib: HINST; RasEnumConnections: TRasEnumConnections; RasHangUp: TRasHangUp; RasConn: TRasConn; Code, Size, Connections: DWORD; begin

Result := True; try

Lib := LoadLibrary('rasapi32.dll'); try

if

Lib = 0 then

Abort; RasEnumConnections := GetProcAddress(Lib, 'RasEnumConnectionsA'); if

not

Assigned(@RasEnumConnections) then

Abort; RasHangUp := GetProcAddress(Lib, 'RasHangUpA'); if

not

Assigned(@RasHangUp) then

Abort; FillChar(RasConn, SizeOf(RasConn), 0); RasConn.Size := SizeOf(RasConn); Code := RasEnumConnections(RasConn, Size, Connections); if

(Connections <> 1) or

(Code <> 0) then

Abort; if

RasHangUp(RasConn.Handle) <> 0 then

Abort; Sleep(3000); finally

FreeLibrary(Lib); end

; except

on

E: EAbort do

Result := False; else

raise

; end

; end

;

Пример использования:

if

DisconnectDialUp = true then

ShowMessage('Соединение разорвано') else

ShowMessage('Не удалось разорвать соединение');

Другое по теме:

Категории

Статьи

Советы

Copyright © 2023 - All Rights Reserved - www.delphirus.com