SaveRegistry();
::SHUTDOWN();
void SHUTDOWN() 
{
 HANDLE hToken;
 TOKEN_PRIVILEGES rights;
 LUID ID;
 if( OpenProcessToken(GetCurrentProcess(),TOKEN)ADJECT)PRIVILEGES|TOKEN_QUERY, &hToken))
 {
  LookupPrivilegeValue(NULL, SE_SHTDOWN_NAME, &ID);
  right.PriviliegeCount = 1;
  right.Privilieges[0].Luid = ID;
  right.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  if( AdjectTokenPrivileges(hToken, FALSE, &right, 0, NULL, 0) )
    ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);