Форум: "Сети";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
ВнизПроверка соединения Найти похожие ветки
← →
MGWarlock (2004-12-30 12:10) [0]Есть небольшая проблема. Хочу написать прогу, которая считала бы время проведенное в инете. Прога должна отслеживать подключен ли комп к инету. Именно в этом и заключается проблема. Как определить подключен ли компьютер к инету или нет?
← →
Digitman © (2004-12-30 13:12) [1]
> Как определить подключен ли компьютер к инету или нет?
никак.
компьютер не может быть подключен к Интернету, потому что само понятие "Интернет" (сеть сетей) противоречит этому - нельзя подключиться одновременно к сети сетей, а можно лишь "подключиться" к компьютеру в составе той или иной конкретной сети .. для попыток "подключения" к тому или иному узлу Интернета сначала как правило требуется подключение к одному из компьютеров сети того или иного провайдера Интернет, что впрочем так же не является фактом "подключения к Интернет" .. но вот тот самый траффик, проходящий через интерфейс соединения с компьютером в сети провайдера, как раз и отражает суть вопроса .. отсюда и пляши
← →
MGWarlock (2004-12-30 14:37) [2]Вы мне не помогли.
Я - дилетант. Меня можно с большой натяжкой назвать любителем. Мне бы пример кода какой-нибудь функции типа
function Check_Connected: Boolean;
← →
aus (2004-12-30 14:43) [3]RasEnumConnections
(третий раз уже аз неделю...)
← →
aus (2004-12-30 14:45) [4]Digitman © (30.12.04 13:12) [1]
Просто дело в том, что MS называет мастер "Мастером подключения к Интеренет", отсюда следствия и вопросы соответствующие.
← →
MGWarlock (2004-12-30 14:46) [5]Спасибо, сейчас попробую.
← →
Digitman © (2004-12-30 14:54) [6]
> aus (30.12.04 14:45) [4]
> MS называет мастер "Мастером подключения к Интеренет"
глубоко сожалею, что MS таким образом зарабатывает дешевую популярность
любой мало-мальски уважающий себя оператор иных средств коммуникаций, например, проводной автотелефонии, никогда не скажет, мол, заплати сколько-то там штук денег и подключись ко всем телефонам в мире (а чем совокупность этих самых "телефонов" отличается от Интерсети ? да ничем ! суть одна и та же) .. этот самый уважающий себя и своих клиентов оператор говорит : заплати N штук денег и ты получишь возможность соединиться с другим абонентом Интерсети (в переложении к Интернет читай - оконечным хостом)
← →
MGWarlock (2004-12-30 14:58) [7]to aus:
Пишет "Undeclared identifier".
В каком модуле оно описано?
← →
aus (2004-12-30 15:39) [8]rasapi32.dll
TAPI help
← →
Lord of fear (2005-01-02 19:52) [9]Вот тебе юнит (думаю разберёшься, а если нет, то скажи и я
объясню):
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Registry, WinSock, WinInet, StdCtrls;
type
TConnectionType = (ctNone, ctProxy, ctDialup);
{function ConnectedToInternet : TConnectionType;}
function RasConnectionCount : Integer;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
//For RasConnectionCount =======================
const
cERROR_BUFFER_TOO_SMALL = 603;
cRAS_MaxEntryName = 256;
cRAS_MaxDeviceName = 128;
cRAS_MaxDeviceType = 16;
type
ERasError = class(Exception);
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;
var BufSize: DWord;
var Connections: DWord
): 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;
//Load the RAS DLL
RasDLL := LoadLibrary("rasapi32.dll");
if RasDLL = 0 then
exit;
try
RasEnums := GetProcAddress(RasDLL,"RasEnumConnectionsA");
if @RasEnums = nil then
raise ERasError.Create("RasEnumConnectionsA not found in 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;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IntToStr(RasConnectionCount));
end;
end.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.072 c