RUNDLL32.EXE powrprof.dll,SetSuspendState 0,1,0. Это безопасно?

RUNDLL32.EXE powrprof.dll,SetSuspendState 0,1,0. Это безопасно?

Я искал этот код для спящего режима в cmd windows 7 в Интернете:RUNDLL32.EXE powrprof.dll,SetSuspendState 0,1,0. Это безопасно?

решение1

Ну... так не должно быть.повреждатьчто угодно, но с другой стороны, это работает только благодаря удаче.

Функция SetSuspendState() — этонеподходящийдля вызова через rundll32. Он принимает три булевых значения в качестве параметров – но нет способа указать это; rundll32 всегда будет давать ему определенный список параметров, которыенеполностью соответствует тому, что ожидает SetSuspendState. (И нет, «0,1,0» не будет интерпретировано как логические значения или целые числа — все будет передано как один строковый параметр.)

Итак, после сравненияУстановитьSuspendStateиrundll32списки параметров, похоже, что вы в конечном итоге передадите случайное ненулевое значение как bHibernate, случайное ненулевое значение как bForce и случайное ненулевое значение как bWakeupEventsDisabled. Если этослучается сработает, но не совсем надежно.

Я не думаю, что в Windows 7 есть какие-либо инструменты, позволяющие сделать это правильно (PowerShellмощьвыполняют эту работу), поэтому я бы рекомендовал использоватьnircmd в режиме ожиданияилиpsshutdown -dвместо.

Связанный контент