2013-06-29 173 views
0

我是C#新手,我在C#.net windows應用程序中開發項目,我需要從計劃文件中讀取下一個計劃時間,如果沒有下一個小時的計劃,我的系統不需要喚醒直到下一個日程安排文件中定義的時間到達。我的系統需要關閉,關機前需要設置系統喚醒的定時器。如何在關機前及時設置系統。
我在linux系統中通過python腳本在/sys/class/rtc/rtc0/wakealaram位置寫入系統時做了同樣的操作。我只是在這個位置按時寫下一個系統並關閉系統,系統可以通過達到wakealaram文件中給出的時間自動開啓。我需要使用C#在Windows系統中執行相同的操作。如何在關機前設置系統的喚醒時間?

+0

關於[CodeProject](http:/ /)的相關文章(http://www.codeproject.com/Articles/49798/Wake-the-PC-from-standby-or-hibernation) /www.codeproject.com)。 –

+0

可能重複的[C#:如何喚醒系統已關閉?](http://stackoverflow.com/questions/4061844/c-how-to-wake-up-system-which-has-been-shutdown ) –

回答

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 
+0

感謝Danny編輯..「hash」註釋掉了所有內容 – Mukus

+0

你的代碼只是設置[system time](http://msdn.microsoft.com/en-us/library/windows/desktop/ms724942%28v = vs.85%29.aspx)。這與喚醒時間有什麼關係? –

+0

我不確定操作系統的睡眠/喚醒設置。我只熟悉使用System Time。此外,爲確保系統時間保持不變,應關閉網絡時間調整。 – Mukus