using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
namespace RIS2
{
public class TimerClass
{
private static Timer timer;
/// <summary>
///
/// </summary>
/// <param name="Interval">Gets or sets the interval, expressed in milliseconds, at which to raise the Elapsed event.</param>
/// <param name="OnTimedEvent"></param>
public static void SetTimerAndStart(int Interval, ElapsedEventHandler OnTimedEvent)
{
Stop();
timer = new Timer();
timer.Interval = Interval;
timer.Elapsed += OnTimedEvent;
timer.AutoReset = true;
timer.Start();
}
public static void Stop()
{
if (timer != null)
{
timer.Stop();
timer.Dispose();
}
}
public static void OnTimed(Object source, ElapsedEventArgs e)
{
MessageBox.Show("Timed");
}
}
}
[StructLayout(LayoutKind.Sequential)]
public struct 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;
public void FromDateTime(DateTime time)
{
wYear = (ushort)time.Year;
wMonth = (ushort)time.Month;
wDayOfWeek = (ushort)time.DayOfWeek;
wDay = (ushort)time.Day;
wHour = (ushort)time.Hour;
wMinute = (ushort)time.Minute;
wSecond = (ushort)time.Second;
wMilliseconds = (ushort)time.Millisecond;
}
}
[DllImport("Kernel32.dll")]
public static extern bool SetLocalTime(ref SystemTime Time);
[DllImport("Kernel32.dll")]
public static extern void GetLocalTime(ref SystemTime sysTime);
private void btn_SetLocalTime_Click(object sender, RoutedEventArgs e)
{
SystemTime MySystemTime = new SystemTime();
GetLocalTime(ref MySystemTime);
MySystemTime.FromDateTime(DateTime.Now.AddHours(2));
SetLocalTime(ref MySystemTime);
}