Strict Framework brl.blitz Import "-lkernel32" Import "-ladvapi32" Extern "Win32" 'advapi32 Function OpenProcessToken(ProcessHandle, DesiredAccess, TokenHandle:Byte Ptr) Function LookupPrivilegeValue(lpSystemName$z, lpName$z, lpLuid:Byte Ptr) = "LookupPrivilegeValueA@12" Function AdjustTokenPrivileges(TokenHandle, DisableAllPrivileges, NewState:Byte Ptr,.. BufferLength, PreviousState:Byte Ptr, ReturnLength:Byte Ptr) 'kernel32 Function GetCurrentProcess() Function SetSystemPowerState(fSuspend, fForce) Function GetLastError() End Extern Const TOKEN_ADJUST_PRIVILEGES = $20 Const TOKEN_QUERY = $8 Const SE_PRIVILEGE_ENABLED = $2 StandBy() ' Bye Bye End Function StandBy() Local tokenPrivilege[4] If LookupPrivilegeValue(Null, "SeShutdownPrivilege", Byte Ptr(tokenPrivilege) + 4) = 0 DebugLog "LookupPrivilegeValue error : " + GetLastError() Return EndIf Local hProc = GetCurrentProcess() ' -1 Local hToken If OpenProcessToken(hProc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, Varptr(hToken)) = 0 DebugLog "OpenProcessToken error : " + GetLastError() Return EndIf tokenPrivilege[0] = 1 tokenPrivilege[3] = SE_PRIVILEGE_ENABLED If AdjustTokenPrivileges(hToken, False, Byte Ptr(tokenPrivilege), Null, Null, Null) = 0 DebugLog "AdjustTokenPrivileges error : " + GetLastError() Return EndIf If SetSystemPowerState(True, False) = 0 DebugLog "SetSystemPowerState error : " + GetLastError() Return EndIf End Function