Hibernate Win7 через VBA [Excel]?

Я ищу способ перевести мой ноутбук [Win7] в спящий режим через VBA [Excel 2010]. Я искал решение, но не смог найти подходящего. Я играл с SendKeys метод, но не повезло. Тогда Shell "C:\WINDOWS\System32\rundll32.exe powrprof.dll,SetSuspendState", vbHide дал мне Compile error: Invalid outside procedure сообщение. Function ExitWindowsEx дает только выбор для выхода из системы, выключения и перезагрузки, но, насколько я знаю, нет спящего режима. Спасибо за вашу помощь заранее.

1 ответ

Решение

Я только что успешно зимовал мой комп. Вот великолепный код:

Option Explicit

Declare Function SetSuspendState Lib "powrprof.dll" _
(ByVal Hibernate As Boolean, ByVal ForceCritical As Boolean, ByVal DisableWakeEvent As Boolean) As Boolean

Sub Yoo()
    Dim value_hibernate As Integer
    value_hibernate = SetSuspendState(True, False, False)
    If value_hibernate <> 1 Then MsgBox "Hibernation has failed."
End Sub

В некоторых комментариях говорилось, что лучше идти с SetSuspendState чем PowerState один.

Получайте удовольствие от гибернации ваших машин через VBA! Yaay!

Другие вопросы по тегам