C#:如何唤醒关闭的系统?是否有任何Win32API用于唤醒在特定时间关闭的系统?我见过一个名为AutopowerOn的程序,它可以在指定的时间打开系统。从网站上得到以下帖子。有人试过这个吗?框架中没有任何内容,因此您必须“PInvoke”一下。您需要调用的API是CreateWaitableTimer和SetWaitableTimer。这是一个完整的(Q&D)示例,说明如何使用上面的Win32API将系统设置为从睡眠/休眠状态唤醒。注意我这里设置的相对唤醒时间是3000000nSecs。这意味着计算机将在设置定时器后的30秒内唤醒(假设他正在睡觉或休眠)。有关SetWaitableTimer及其参数的详细信息,请参阅MSDN文档。使用系统;使用System.Runtime.InteropServices;使用System.Windows.Forms;namespaceWillys{classProgram{[DllImport("kernel32.dll")]publicstaticexternIntPtrCreateWaitableTimer(IntPtrlpTimerAttributes,boolbManualReset,stringlpTimerName);[DllImport("kernel32.dll")]publicstaticexternboolSetWaitableTimer(IntPtrhTimer,[In]reflongpDueTime,intlPeriod,IntPtrpfnCompletionRoutine,IntPtrlpArgToCompletionRoutine,boolfResume);[DllImport("kernel32",SetLastError=true,ExactSpelling=true)]publicstaticexternInt32WaitForSingleObject(IntPtrhandle,uint毫秒);staticvoidMain(){SetWaitForWakeUpTime();静态IntPtr句柄;静态无效SetWaitForWakeUpTime(){长到期时间=-300000000;//负值,因此是一个相对的到期时间Console.WriteLine("{0:x}",duetime);handle=CreateWaitableTimer(IntPtr.Zero,true,"MyWaitabletimer");SetWaitableTimer(handle,refduetime,0,IntPtr.Zero,IntPtr.Zero,true);uint无限=0xFFFFFFFF;intret=WaitForSingleObject(句柄,无限);MessageBox.Show("叫醒电话");这个局域网唤醒(WOL)代码项目帖子可能很有用(主板和NIC都必须支持WOL)一旦你真正关闭你的计算机(没有睡眠或休眠),你不能直接从C#唤醒它,所有操作系统本身关闭后的C++代码。唯一的机会是您的开发板支持某种计时器机制。还有一些C++函数可以将一些标志写入BIOS并设置该计时器。使用Windows计划任务菜单。请参阅:http://www.howtogeek.com/119028/how-to-make-your-pc-wake-from-sleep-automatically/您创建一个程序以在唤醒时运行,然后手动将其输入到WindowsScheduled任务列表,这是它在一定时间后第一次醒来。当您以编程方式唤醒时,我不确定您是否需要您的程序调用WindowsAPI以防止它再次被唤醒,同样如果您希望您的程序在启动另一个计划任务后关闭PC以再次唤醒.需要研究这些WindowsAPI。以上就是C#学习教程:C#:如何唤醒已经关机的系统?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
