朋友家里用的ADSL是按时间计费的(总觉得这种方式不划算,似乎比包月要贵许多),需要一个用来计时的小工具。上网查了半天,要不就是需要安装这个安装那个,要不就是得注册,还个个大的要命,动辄几百K,有的还要好几M。最受不了就是搞的神神秘秘,似乎含有军事级代码似的。唉……,自己来吧。
    既然是ADSL计时器,那么就要知道ADSL连接的时间,这也许会用到ras*,我确实不太了解这一系列的API。如果非要用也违背我自己的原则:工作中尽量不涉及自己不熟悉的知识域(花在工作上的时间越少,用来学习的时间就越多,我认为在学习过程中学习效率远比工作中要高)。
    那到底该怎么实现呢?其实,ADSL连接的时间可以说就是线的时间,只要确定了在线的时间也就相当于确定了ADSL连接的时间。
    微软似乎提供了几个API用来判断是否连入internet,可是我依然不熟悉。不过我知道,只要可以解析域名应该就可以算在线了,所以我选择利用gethostbyname来判断ADSL是否连接。
    1.注册一个NT Service,该服务不停的解析www.google.com和www.baidu.com,只要解析出一个就算在线。然后将在线的时间累加并记录于共享内存中。
    2.编写GUI,拥有两个功能显示和配置。显示就是把共享内存中的数据定时刷新到界面上,配置就是上网时限什么的。
    3.用NT Service定时启动GUI.
    完工!
    需要的可以来这里下载http://download.csdn.net/source/205459