BOOL IsAdministrator(void)
{
BOOL bIsElevated = FALSE;
HANDLE hToken = NULL;
if (!IsWindows7OrGreater()) {
return FALSE;
}
if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken)) {
struct {
DWORD TokenIsElevated;
}te;
DWORD dwReturnLength = 0;
if (GetTokenInformation(hToken, (_TOKEN_INFORMATION_CLASS)20, &te, sizeof(te), &dwReturnLength)) {
if (dwReturnLength == sizeof(te)) {
bIsElevated = te.TokenIsElevated;
}
}
CloseHandle(hToken);
}
return bIsElevated;
}
本文介绍了一个用于检测当前进程是否运行在管理员权限下的C/C++函数。该函数首先检查系统是否为Windows 7或更高版本,然后尝试打开当前进程的令牌并获取令牌信息,以判断是否具有提升的权限。
3万+

被折叠的 条评论
为什么被折叠?



