2022-11-27 20:48:20 +00:00
|
|
|
#include "IsElevated.hpp"
|
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
|
|
|
|
#include <windows.h>
|
|
|
|
|
|
|
|
bool IsElevated()
|
|
|
|
{
|
|
|
|
HANDLE token;
|
|
|
|
if( OpenProcessToken( GetCurrentProcess(), TOKEN_QUERY, &token ) == 0 ) return false;
|
|
|
|
|
|
|
|
TOKEN_ELEVATION te;
|
|
|
|
DWORD sz;
|
|
|
|
if( GetTokenInformation( token, TokenElevation, &te, sizeof( te ), &sz ) == 0 )
|
|
|
|
{
|
|
|
|
CloseHandle( token );
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool ret = te.TokenIsElevated;
|
|
|
|
CloseHandle( token );
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
2023-02-20 20:36:18 +00:00
|
|
|
#elif defined __EMSCRIPTEN__
|
|
|
|
|
|
|
|
bool IsElevated()
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2022-11-27 20:48:20 +00:00
|
|
|
#else
|
|
|
|
|
2022-11-27 21:35:19 +00:00
|
|
|
#include <unistd.h>
|
|
|
|
|
2022-11-27 20:48:20 +00:00
|
|
|
bool IsElevated()
|
|
|
|
{
|
2022-11-27 21:35:19 +00:00
|
|
|
return getuid() == 0;
|
2022-11-27 20:48:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|