#include <iostream>
#include <windows.h>
using namespace std;
// 判断当前程序是否以管理员身份运行。
bool IsProcessRunAsAdmin()
{
SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
PSID AdministratorsGroup;
BOOL ret = AllocateAndInitializeSid(
&NtAuthority,
2,
SECURITY_BUILTIN_DOMAIN_RID,
DOMAIN_ALIAS_RID_ADMINS,
0, 0, 0, 0, 0, 0,
&AdministratorsGroup);
if (ret)
{
CheckTokenMembership(NULL, AdministratorsGroup, &ret);
FreeSid(AdministratorsGroup);
}
return ret == TRUE;
}
int main()
{
if (IsProcessRunAsAdmin())
{
cout << "Run as administrator ........" << endl;
}
else
{
cout << "Run as Not Administrator ......" << endl;
}
getchar();
return 0;
}