Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Проверка соединения   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.048 c
1-1108965198
xOn
2005-02-21 08:53
2005.03.06
Процедуры и функции Delphi


1-1108554718
AbramovVi
2005-02-16 14:51
2005.03.06
Классы из DLL


6-1104329490
Zloy
2004-12-29 17:11
2005.03.06
Народ подскажите какой компонент для прокси сервера


1-1108558742
Gost
2005-02-16 15:59
2005.03.06
Как засунуть номер месяца в String из DateTimePicker?


10-1084796970
VK220
2004-05-17 16:29
2005.03.06
Здравствуйте! Если функция _AddRef вызывается при любом обращении