Hibernate
Create a shortcut with
rundll32 Powrprof.dll,SetSuspendState
Note I can't guarantee it will always work. As we're passing Null, Null, Null. to a function that expects values. It will hibernate as you can't tell it to suspend
Platform SDK: Hardware
SetSuspendState
The SetSuspendState function suspends the system by shutting power down. Depending on the Hibernate parameter, the system either enters a suspend (sleep) state or hibernation (S4). If the ForceFlag parameter is TRUE, the system suspends operation immediately; if it is FALSE, the system requests permission from all applications and device drivers before doing so.
BOOL SetSuspendState (
BOOL Hibernate,
BOOL ForceCritical,
BOOL DisableWakeEvent
);
Parameters
Hibernate
[in] Specifies the state of the system. If TRUE, the system hibernates. If FALSE, the system is suspended.
ForceCritical
[in] Forced suspension. If TRUE, the function broadcasts a PBT_APMSUSPEND event to each application and driver, then immediately suspends operation. If FALSE, the function broadcasts a PBT_APMQUERYSUSPEND event to each application to request permission to suspend operation.
DisableWakeEvent
[in] If TRUE, the system disables all wake events. If FALSE, any system wake events remain enabled.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
An application may use SetSuspendState to transition the system from the working state to the standby (sleep), or optionally, hibernate (S4) state. This function is similar to the SetSystemPowerState function.
Requirements
Windows NT/2000/XP: Included in Windows 2000 and later.
Windows 95/98/Me: Included in Windows 98 and later.
Header: Declared in Powrprof.h.
Library: Use Powrprof.lib.
See Also
Power Management Overview, Power Management Functions, PBT_APMQUERYSUSPEND, PBT_APMSUSPEND
Then put on start or desktop and set a hotkey in it's properties.