Ho creato una scorciatoia per rundll32.exe powrprof.dll,SetSuspendState 0,1,0
(anch'essa provata con 0,0,0,0), ma l'esecuzione della scorciatoia sembrava mettere il mio PC in ibernazione. Non riuscivo a svegliare il PC usando la tastiera; dovevo premere il pulsante di accensione, e il PC mostrava i messaggi dei post della mainboard, ecc.
Dopo aver letto il documento API di Windows , ho creato un programma molto semplice con solo 3 righe di digitazione. Ho caricato l'eseguibile che ho compilato su questa pagina (clicca su “SleepTest.exe”) , ma questo file potrebbe essere cancellato dopo un po’ di tempo (questo è un sito di file hosting gratuito che ho appena trovato con una rapida ricerca su Google).
Se non ti fidi di me (il che va benissimo) o il file è stato cancellato, puoi compilare il codice da solo, naturalmente. È necessario aggiungere “PowrProf.lib” alle dipendenze aggiuntive del 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
sembra fare la stessa cosa, ma in qualche modo, il programma di cui sopra non ha messo il computer in ibernazione. Potevo svegliare il PC all'istante (nessun messaggio della mainboard, ecc.) premendo un tasto qualsiasi della tastiera.