上网计费软件是如何判断当前是否在线的?(50分)

  • 主题发起人 主题发起人 dana
  • 开始时间 开始时间
D

dana

Unregistered / Unconfirmed
GUEST, unregistred user!
上网计费软件是如何判断当前是否在线的?
 
最烂的方法是做一个循环,判断RAS的活动连接数
 
if udp.localip='0.0.0.0' then
//未上网
else
//已上网
 
检测注册表,我的程序在Win98下成功,程序如下:
//拨号网络检测函数
function GetRasStatus: boolean;//return true if RAS connected
var
i: integer;
Reg: TRegistry;
begin
i:=0;
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('/System/CurrentControlSet/Services/RemoteAccess', False);
if Reg.ValueExists('Remote Connection') then Reg.ReadBinaryData('Remote Connection',i,4);
finally
Reg.Free;
end;
Result:=(i<>0);
end;
 
看看hundog的《葵花宝典》吧!
如何编写个人Internet上网计费软件
---- 随着Internet的日益普及,到Internet网上冲浪的人是越来越多了,对于手头并不是很宽裕的网民特别是在家里上网的网民来说,如果能及时知道自己上网已经花了多少钱,那么,每次到ISP那缴纳费用时,至少可以做到心中有数。下面介绍一种非常方便的方法,根据这个方法的原理,用VB、Delphi之类的软件很容易很快编写出一个不错的个人Internet上网计费软件。
---- 工作原理
---- 现在一般个人上网,都是运行Windows 95/98平台,采用Modem拨号上网方式,在Windows 95/98中,配置“拨号服务器”时,拨号服务器有一个属性,就是是否记录日志文件,其默认值是“否”。对于它,平常我们可能都没太注意。我们把它改成“是”,这样,在每次上网后,Windows 95就会在其安装目录下(通常就是C盘的Windows目录),把上网连通的时间以及上网过程中发生的事件记录在ppplog.txt日志文件中。
---- ppplog.txt是一个标准的文本文件,在此文件中,上网发生的每个事件记录占有一行,格式为:
日期 时间 发生的事件
|---------|-----------|-|---------------------|
12-19-1998 21:54:31.25
- Microsoft 拨号网络适配器日志已打开。
12-19-1998 21:54:31.25
- 服务器类型是 PPP (点到点协议)。
(省略n个字,自己看宝典!!很长的)
---- 结束语

---- 通过上述过程,每次上网的费用都计算保存在数据库internet.db中,我们可以再编一段查询程序,这样便可以清楚地随时知道自己的上网花费了。
 
如果是局域网内上网呢???
 
多人接受答案了。
 
后退
顶部