Eu criei um atalho para rundll32.exe powrprof.dll,SetSuspendState 0,1,0
(também tentei com 0,0,0), mas correr o atalho pareceu colocar o meu PC em hibernação. Não consegui acordar o PC usando o teclado; tive que pressionar o botão de energia, e o PC mostrou as mensagens da placa principal, etc.
Depois de ler o documento Windows API document , criei um programa muito simples com apenas 3 linhas de digitação. Fiz o upload do executável que compilei para esta página (clique no “SleepTest.exe”) , mas este ficheiro pode ser apagado passado algum tempo (este é um site gratuito de alojamento de ficheiros que acabei de encontrar através de uma pesquisa rápida no Google).
Se não confia em mim (o que é totalmente correcto) ou o ficheiro foi apagado, pode compilar o código você mesmo, claro. Você precisa adicionar “PowrProf.lib” às dependências adicionais do Linker.
#include "stdafx.h"
#include "windows.h" <-- Added this to make it work on Windows.
#include "PowrProf.h" <-- Added this to use the sleep function.
int main()
{
SetSuspendState(FALSE, FALSE, FALSE); <-- Added this actual call.
return 0;
}
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
parece estar fazendo a mesma coisa, mas de alguma forma, o programa acima não colocou o computador em hibernação. Eu podia acordar o PC instantaneamente (sem mensagens da placa principal, etc.) pressionando qualquer tecla no teclado.