Windows 中是否有任何 Win32 API 可以触发休眠或挂起模式?
是否有任何 Win32 API 可以使计算机进入休眠或挂起模式?
我阅读了 MSDN,发现当电源管理事件发生时,WM_POWERBROADCAST
消息会被广播。 我想用 PostMessage(WM_POWERBROADCAST) 来模拟同样的事情。 这是正确的做法还是存在任何 Win32 API 可以实现此目的?
Is there any Win32 API to put the machine into hibernate or suspend mode?
I read MSDN and found that WM_POWERBROADCAST
message gets broadcasted when power-management events occur. I thought of simulating the same with PostMessage(WM_POWERBROADCAST)
. Is this the correct way of doing or any Win32 API exists to achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
查看
SetSuspendState
。请注意,您需要 SE_SHUTDOWN_NAME 权限,如引用的 msdn 页面上所述。
Check out
SetSuspendState
.Note that you need SE_SHUTDOWN_NAME privilege, as mentioned on the referenced msdn page.
正如 Ben Schwehn 所发表的,SetSuspendState 是最佳选择。 在 win95 上,您应该调用 SetSystemPowerState。 您还可以调用 IsPwrSuspendAllowed 和 IsPwrHibernateAllowed 或 GetPwrCapativity 来判断计算机是否支持挂起/休眠。
As posted by Ben Schwehn, SetSuspendState is the way to go. On win95, you should call SetSystemPowerState. You can also call IsPwrSuspendAllowed and IsPwrHibernateAllowed or GetPwrCapabilities to tell if the machine supports suspend/hibernate.
在 Windows 窗体应用程序中,使用 SetSUspendState (http://msdn.microsoft.com/fr-fr/library/system.windows.forms.application.setsuspendstate.aspx) 方法。 第一个参数允许您在 SUspend 和 Hibernate 之间进行选择。
对于非 Windows 窗体应用程序,直接调用 Win32 API:SetSuspendState 函数位于 powrprof.dll 文件中。
In a Windows Form application, use the SetSUspendState (http://msdn.microsoft.com/fr-fr/library/system.windows.forms.application.setsuspendstate.aspx) method. The first parameter allows you to chose between SUspend and Hibernate.
For a non-Windows forms app, call the Win32 API directly : the SetSuspendState function is in the powrprof.dll file.