判断当前程序是否以管理员身份运行,代码如下:
#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()
{
cout << "Hello world!" << endl;
if(IsProcessRunAsAdmin())
{
cout<<"Run as administrator ........"<<endl;
}
else
{
cout<<"Run as Not Administrator ......"<<endl;
}
getchar();
return 0;
}
程序结果:
普通方式运行(直接双击运行):
![](https://i-blog.csdnimg.cn/blog_migrate/ebbcb4ccd779dd233f3ff3a325560dc8.png)
以管理员方式运行(右键->以管理员身份运行)-->确定:
![](https://i-blog.csdnimg.cn/blog_migrate/1957942afa500d9d1733e182897f45e3.png)