C# 修改系統時間


/// <summary>
    /// 同步服務時間
    /// </summary>
    public class SyncServerTime
    {
        //設置系統時間的API函數
        [DllImport("kernel32.dll")]
        private static extern bool SetLocalTime(ref SYSTEMTIME time);

        [StructLayout(LayoutKind.Sequential)]
        private struct SYSTEMTIME
        {
            public short year;
            public short month;
            public short dayOfWeek;
            public short day;
            public short hour;
            public short minute;
            public short second;
            public short milliseconds;
        }

        /// <summary>
        /// 設置系統時間
        /// </summary>
        /// <param name="dt">需要設置的時間</param>
        /// <returns>返回系統時間設置狀態,true為成功,false為失敗</returns>
        public static bool SetDate(DateTime dt)
        {
            SYSTEMTIME st;

            st.year = (short)dt.Year;
            st.month = (short)dt.Month;
            st.dayOfWeek = (short)dt.DayOfWeek;
            st.day = (short)dt.Day;
            st.hour = (short)dt.Hour;
            st.minute = (short)dt.Minute;
            st.second = (short)dt.Second;
            st.milliseconds = (short)dt.Millisecond;
            bool rt = SetLocalTime(ref st);
            return rt;
        }
    }

運行中發現總是返回false。 
經過研究發現原來時我的程序運行在win8系統上需要管理員權限,然后程序作如下配置即可: 

 
這里寫圖片描述 
這里寫圖片描述 
這里寫圖片描述 
這里寫圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM