Windows C++ 判断进程是否是管理员权限运行的

BOOL IsRunningAsAdmin(DWORD pid) {
    HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pid);
    if (!hProcess) {
        return FALSE;
    }
    HANDLE hToken;
    TOKEN_ELEVATION Elevation;
    DWORD cbSize = sizeof(TOKEN_ELEVATION);

    // 获取当前进程的访问令牌  
    if (!OpenProcessToken(hProcess, TOKEN_QUERY, &hToken))
        return false;

    // 获取令牌的提权信息  
    if (!GetTokenInformation(hToken, TokenElevation, &Elevation, cbSize, &cbSize)) {
        CloseHandle(hToken);
        return false;
    }

    // 检查是否提权  
    CloseHandle(hToken);
    return Elevation.TokenIsElevated != 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值