2009-06-06 7 views
5

Existe-t-il une API Win32 pour mettre l'ordinateur en veille prolongée ou en mode veille? J'ai lu MSDN et a constaté que WM_POWERBROADCAST message est diffusé lorsque les événements de gestion de l'alimentation se produisent. J'ai pensé simuler la même chose avec PostMessage(WM_POWERBROADCAST). Est-ce la bonne façon de faire ou n'importe quelle API Win32 existe pour y parvenir?Existe-t-il une API Win32 pour déclencher le mode veille prolongée ou suspendu dans Windows?

Répondre

11

Découvrez SetSuspendState.

Notez que vous avez besoin du privilège SE_SHUTDOWN_NAME, comme mentionné sur la page msdn référencée.

+0

Battez-moi! J'ai corrigé le lien dans votre message. J'espère que ça ne vous dérange pas. –

1

Tel que posté par Ben Schwehn, SetSuspendState est la voie à suivre. Sur win95, vous devriez appeler SetSystemPowerState. Vous pouvez également appeler IsPwrSuspendAllowed et IsPwrHibernateAllowed ou GetPwrCapabilities pour indiquer si la machine prend en charge la suspension/hibernation.

0

Dans une application Windows Form, utilisez la méthode SetSUspendState (http://msdn.microsoft.com/fr-fr/library/system.windows.forms.application.setsuspendstate.aspx). Le premier paramètre vous permet de choisir entre SUspend et Hibernate.

Pour une application de formulaires autre que Windows, appelez directement l'API Win32: la fonction SetSuspendState se trouve dans le fichier powrprof.dll.

Questions connexes