MFC 判断程序是否是高权

BOOL IsAdministrator()

{

BOOL bIsElevated = FALSE;

HANDLE hToken = NULL;

if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))

{

DWORD dwReturnLength = 0;

TOKEN_ELEVATION te;

if (GetTokenInformation(hToken,(_TOKEN_INFORMATION_CLASS)TokenElevation, &te, sizeof(te), &dwReturnLength)) {

if (dwReturnLength == sizeof(te))

bIsElevated = te.TokenIsElevated;

}

CloseHandle(hToken);

}

return bIsElevated;

}

if (IsAdministrator())

{

//AfxMessageBox(_T("IsAdministrator true"));

}

else

{

AfxMessageBox(_T("Please run with administrator privileges."));

return FALSE;

}

相关推荐
石山代码12 小时前
C++ 内存分区 堆区
java·开发语言·c++
张小姐的猫14 小时前
【Linux】多线程 —— 线程互斥
linux·运维·服务器·c++
做人求其滴16 小时前
面试经典 150 题 380 274
c++·算法·面试·职场和发展·力扣
见叶之秋17 小时前
C++基础入门指南
开发语言·c++
计算机安禾17 小时前
【c++面向对象编程】第42篇:模板特化与偏特化:为特定类型定制实现
开发语言·c++·算法
玖釉-17 小时前
C++ 中的循环语句详解:while、do...while、for、嵌套循环与循环控制
开发语言·c++·算法
欧米欧18 小时前
C++进阶数据结构之搜索二叉树
开发语言·数据结构·c++
青小莫18 小时前
C++之vector讲解
c++·stl
计算机安禾19 小时前
【c++面向对象编程】第41篇:函数模板与类模板:泛型编程的基石
开发语言·c++·算法
郝学胜-神的一滴19 小时前
Qt 高级开发 010: 从跨界面传值到自定义信号
开发语言·c++·qt·程序人生·用户界面