Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
ВнизКак из этих функций сделать модуль или как их использовать? Найти похожие ветки
← →
Lony (2002-10-13 14:23) [0]Есть текст, проверяющий подключение к интернету, но как их можно использовать или сделать из них модуль, я не знаю. Не подскажите?
← →
Lony (2002-10-13 14:33) [1]Да, а вот и сам текст:
function CheckInetConnect:byte;
const
cERROR_BUFFER_TOO_SMALL = 603;
cRAS_MaxEntryName = 256;
cRAS_MaxDeviceName = 128;
cRAS_MaxDeviceType = 16;
type
HRASConn = DWord;
PRASConn = ^TRASConn;
TRASConn = record
dwSize: DWORD;
rasConn: HRASConn;
szEntryName: array [0..cRAS_MaxEntryName] of Char;
szDeviceType: array [0..cRAS_MaxDeviceType] of Char;
szDeviceName: array [0..cRAS_MaxDeviceName] of char;
end;
TRasEnumConnections =
function (RASConn: PrasConn; { buffer to receive Connections data }
var BufSize: DWord; { size in bytes of buffer }
var Connections: DWord { number of Connections written to
buffer }
): LongInt; stdcall;
//---------------------------------------
function RasConnectionCount : Integer;
var
RasDLL: HInst;
Conns: array [1..4] of TRasConn;
RasEnums: TRasEnumConnections;
BufSize: DWord;
NumConns: DWord;
RasResult: Longint;
begin
Result:= 0;
// Загрузка библиотеки
RasDLL:= LoadLibrary("rasapi32.dll");
if RasDLL = 0 then exit;
try
RasEnums:= GetProcAddress(RasDLL,"RasEnumConnectionsA");
if @RasEnums = nil then
raise ERasError.Create
("Ошибка вызова функции RasEnumConnectionsA из rasapi32.dll");
Conns[1].dwSize:= Sizeof (Conns[1]);
BufSize:= SizeOf(Conns);
RasResult:= RasEnums(@Conns, BufSize, NumConns);
If (RasResult = 0) or (Result = cERROR_BUFFER_TOO_SMALL) then
Result:=NumConns;
finally
FreeLibrary(RasDLL);
end;
end;
//---------------------------------------
var
Reg : TRegistry;
bUseProxy : Boolean;
UseProxy : LongWord;
begin
Result:= 0;
Reg:= TRegistry.Create;
with REG do
try
try
RootKey:= HKEY_CURRENT_USER;
if OpenKey("\Software\Microsoft\Windows\CurrentVersion\Internet Settings",
False) then begin
// Пробуем прочитать и ловим ошибку
if GetDataType("ProxyEnable") = rdBinary then
ReadBinaryData("ProxyEnable", UseProxy, SizeOf(LongWord)) else
begin
bUseProxy:= ReadBool("ProxyEnable");
if bUseProxy then UseProxy:= 1 else UseProxy:= 0;
end;
if (UseProxy <> 0) and (ReadString("ProxyServer") <> "" ) then Result:= 2;
end;
except
// Вероятно, нет связи через прокси
end;
finally
Free;
end;
// Мы можем проверять(отмечать) RasConnectionCount, даже если работа с сетями
// телефонного вызова не установлена просто, потому что это возвратится 0,
// если DLL не найден.
if Result = 0 then
begin
if RasConnectionCount > 0 then Result:= 1;
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c