分享一个自动联网对时程序

我的电脑主板似乎出现了问题,经常出现电脑时间错乱,导致网页打不开(其实是和证书有关)。更换了新的电池没有效果,又不想掏钱换主板,想了下,每次去设置时间又很麻烦,因此自己写了个联网时间设置工具,只要自己设置为开机自动运行,即可在开机并联入网络后自动同步时间(未联网将会等待联网)。含源码和已经编译的工具,电脑需要.net framework 4.0 支持!

 

分享一下程序的思路

 

1、从互联网获取时间

初步设想,网上应该有能够提供时间的接口,因此上网搜。还真搜到一个,苏宁的时间接口

http://quan.suning.com/getSysTime.do

能获取到时间就好办了嘛,现在要检测联网状态,只有在计算机已经接入入互联网 情况下才去走接口获取数据

 

2、获取计算机联网状态

windows有相应api直接上代码

       [DllImport("wininet")]
        //判断网络状况的方法,返回值true为连接,false为未连接  
        public extern static bool InternetGetConnectedState(out int conState, int reder); 

 public static bool IsNeting
        {
            get
            {
                int i = 0;
                return InternetGetConnectedState(out i, 0);
            }
        }

//需要using System.Runtime.InteropServices;

 

 

3、设置时间

 

C#设置时间的方法也是通过WINDOWS提供的API

 

        //调用Kernel32.DLL
        [DllImport("Kernel32.dll")]
        public static extern void SetLocalTime(SystemTime st);


        [StructLayout(LayoutKind.Sequential)]
        public class SystemTime
        {
            public ushort wYear;
            public ushort wMonth;
            public ushort wDayOfWeek;
            public ushort wDay;
            public ushort Whour;
            public ushort wMinute;
            public ushort wSecond;
            public ushort wMilliseconds;
        }

         SystemTime st = new SystemTime();
                        st.wYear = (ushort)dt.Year;
                        st.wMonth = (ushort)dt.Month;
                        st.wDay = (ushort)dt.Day;
                        st.Whour = (ushort)dt.Hour;
                        st.wMinute = (ushort)dt.Minute;
                        st.wSecond = (ushort)dt.Second;
                        SetLocalTime(st);

//需要using System.Runtime.InteropServices;

 

这个小工具就用了几个比较简单的技术,其它的大家可以自己看,

 

 

 

 

工具及源码下载:

https://download.csdn.net/download/zinechina/11464103

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值