isPrivilegedUser property

bool get isPrivilegedUser

Returns true if the current process is running with elevated privileges e.g. Is running as an Administrator.

Implementation

bool get isPrivilegedUser {
  var isElevated = false;

  withMemory<void, Pointer>(sizeOf<IntPtr>(), (phToken) {
    withMemory<void, Uint32>(sizeOf<Uint32>(), (pReturnedSize) {
      withMemory<void, _TokenElevation>(sizeOf<_TokenElevation>(),
          (pElevation) {
        if (OpenProcessToken(
          GetCurrentProcess(),
          TOKEN_QUERY,
          phToken,
        ).value) {
          final token = HANDLE(phToken.value);
          if (GetTokenInformation(
            token,
            TokenElevation,
            pElevation,
            sizeOf<_TokenElevation>(),
            pReturnedSize,
          ).value) {
            isElevated = pElevation.ref.tokenIsElevated != 0;
          }
        }
        final token = HANDLE(phToken.value);
        if (token.isValid) {
          token.close();
        }
      });
    });
  });
  return isElevated;
}