读书人

计算机怎么实现定时开机

发布时间: 2012-09-25 09:55:58 作者: rapoo

计算机如何实现定时开机
可写代码来控制bois吗?或者用硬件设置定时开机的小配件,长期接在计算机上,让不懂bois配置的人也可以更改定时开机时间

[解决办法]
如果要通过程序去操作BIOS的话需要主板厂商提供接口,试想,如果程序可以很轻易的更改BIOS设置,那些病毒也能这么干,实际上很少有病毒能改得了BIOS吧.

你倒可以调用系统休眠来实现定时开机,这样也可以的.

C# code
[DllImport("kernel32.dll")]    public static extern SafeWaitHandle CreateWaitableTimer(IntPtr lpTimerAttributes, bool bManualReset, string lpTimerName);    [DllImport("kernel32.dll", SetLastError = true)]    [return: MarshalAs(UnmanagedType.Bool)]    public static extern bool SetWaitableTimer(SafeWaitHandle hTimer, [In] ref long pDueTime, int lPeriod, IntPtr pfnCompletionRoutine, IntPtr lpArgToCompletionRoutine, bool fResume);    /// <summary>    /// 设置唤醒时间    /// </summary>    private void SetWaitForWakeUpTime(DateTime OnTime)    {      DateTime utc = OnTime;      long duetime = utc.ToFileTime();            using (SafeWaitHandle handle = CreateWaitableTimer(IntPtr.Zero, true, "MyWaitabletimer"))      {        if (SetWaitableTimer(handle, ref duetime, 0, IntPtr.Zero, IntPtr.Zero, true))        {          using (EventWaitHandle wh = new EventWaitHandle(false, EventResetMode.AutoReset))          {            wh.SafeWaitHandle = handle;            Application.SetSuspendState(PowerState.Hibernate, true, false);            wh.WaitOne();          }        }        else        {          throw new Win32Exception(Marshal.GetLastWin32Error());        }      }    }
[解决办法]
定时开机
1.bios设置
2.网络唤醒(大部分主板上网卡支持,同样在bios设置打开,不少宽带路由也可以如此唤醒某台电脑)
3。bios设置一通电就开电脑,这样有不少带数据线的ups有定时开机功能,这时也可开电脑
[解决办法]
现在几乎所有主板bios都支持普通的usb口鼠标键盘消息就能唤醒电脑的。
[解决办法]
1.开启bios网络唤醒功能;
2.在被控机的供电系统接入电控定时器;
3.采购定时器,按照厂商提供的API实现控制程序;
4.在被控机(或其他计算机)用软件设定定时器开启时间;

读书人网 >C#

热点推荐