با سلام
روش خاصی به ذهنم نمیرسه
ولی توی ایدتون می تونم کمک کنم
برای تشخیص دادن اینکه Time سیستم عوض شده یک اونت هست در Microsoft.Win32.SystemEvents.TimeChanged که میتونید ازش استفاده کنید به شکل زیر:
private void timer1_Tick(object sender, EventArgs e)
{
Microsoft.Win32.SystemEvents.TimeChanged += new EventHandler(SystemEvents_TimeChanged);
}
void SystemEvents_TimeChanged(object sender, EventArgs e)
{
MessageBox.Show("Time Changed!");
}
برای تنظیم ساعت هم میتونید از این کد استفاده کنید:
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct SYSTEMTIME
{
public short wYear;
public short wMonth;
public short wDayOfWeek;
public short wDay;
public short wHour;
public short wMinute;
public short wSecond;
public short wMilliseconds;
}
[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool SetSystemTime(ref SYSTEMTIME st);
private void button1_Click(object sender, EventArgs e)
{
SYSTEMTIME st = new SYSTEMTIME();
st.wYear = 2009; // must be short
st.wMonth = 1;
st.wDay = 1;
st.wHour = 0;
st.wMinute = 0;
st.wSecond = 0;
SetSystemTime(ref st);
}
موفق باشید