如何在关闭PC之前将唤醒时间设置为系统?

时间:2013-06-29 10:27:42

标签: c#-4.0 intel

我是C#的新手,我正在C#.net windows应用程序中开发项目,因为我需要从我的日程文件中读取下一个日程安排时间,如果没有下一个小时的日程安排,我的系统不需要唤醒直到计划文件中定义的下一个计划时间到达。我的系统需要关闭,在关机之前需要设置系统唤醒的定时器。如何在关机之前按时设置系统。
我在Linux系统中通过python脚本在/sys/class/rtc/rtc0/wakealaram位置按时编写系统来做同样的事情。我只是在这个位置按时编写下一个系统并关闭系统,系统可以通过达到wakealaram文件中给出的时间自动打开。我需要在Windows系统中使用C#进行相同的操作。

1 个答案:

答案 0 :(得分:0)

看看下面的内容。

#region Clock Reset
    [StructLayout(LayoutKind.Sequential)]
    public 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;
    }
    [DllImport("kernel32.dll")]
    public extern static uint SetSystemTime(ref SYSTEMTIME lpSystemTime);

    private void ResetSystemTime(DateTime tdt)
    {
        try
        {

            SYSTEMTIME time = new SYSTEMTIME();
            time.Day = (short)tdt.Day;
            time.Month = (short)tdt.Month;
            time.Year = (short)tdt.Year;
            time.Hour = (short)tdt.Hour;
            time.Minute = (short)tdt.Minute;
            time.Second = (short)tdt.Second;
            SetSystemTime(ref time);
        }
        catch (Exception ex)
        {
            MessageBox.Show("System time reset Exception: " + ex.Message);
        }
    }
#endregion