using System; using System.Runtime.InteropServices; namespace Wayne.Lib { public class WayneSystemTimeCE : ISystemTime { public DateTime Now { get { return DateTime.Now; } } [DllImport("coredll.dll")] static extern bool SetSystemTime( ref SystemTime systemTime); [DllImport("coredll.dll")] static extern bool SetLocalTime( ref SystemTime systemTime); public void SetSystemTime(DateTime newTime) { SystemTime st = WayneSystemTime.ConvertToSystemTime(newTime.ToUniversalTime()); bool rc = SetSystemTime(ref st); if (!rc) { int wrc = Marshal.GetLastWin32Error(); throw new Exception("Error " + wrc + " setting system time"); } } public void SetLocalTime(DateTime newTime) { // Microsoft.VisualBasic.DateAndTime.TimeOfDay = DateTime.SpecifyKind(newTime, DateTimeKind.Local); SystemTime st = WayneSystemTime.ConvertToSystemTime(newTime); bool rc = SetLocalTime(ref st); if (!rc) { int wrc = Marshal.GetLastWin32Error(); throw new Exception("Error " + wrc + " setting local time"); } } } }