判断进程是否"以管理员身份运行"
来源:互联网 发布:大疆官网模拟软件p 编辑:程序博客网 时间:2024/05/17 04:58
判断进程是否是“以管理员身份运行”:
/// @brief判断进程是否以管理员身份运行/// @param[in]dwProcessId : 进程ID/// @param[in]bCurrentProcess : 是否是当前进程///@remarkbCurrentProcess为true时,dwProcessId无效///@return是管理员身份则返回truebool IsRunAsAdministrator(DWORD dwProcessId, bool bCurrentProcess){bool bIsElevated = false;HANDLE hToken = NULL;UINT16 uWinVer = LOWORD(GetVersion());uWinVer = MAKEWORD(HIBYTE(uWinVer),LOBYTE(uWinVer));if (uWinVer < 0x0600)//不是VISTA、Windows7return (false);do {HANDLE hProcess = NULL;if (bCurrentProcess){hProcess = GetCurrentProcess();} else{hProcess = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProcessId);}if (!hProcess){bIsElevated = false;break;}HANDLE hToken = NULL;if (!::OpenProcessToken(hProcess, TOKEN_QUERY, &hToken)){bIsElevated = false;::CloseHandle(hProcess);break;}TOKEN_ELEVATION elevation;DWORD dwRetLen = 0;if (!::GetTokenInformation(hToken, TokenElevation, &elevation, sizeof(elevation), &dwRetLen)){bIsElevated = false;::CloseHandle(hToken);::CloseHandle(hProcess);break;}if (dwRetLen == sizeof(elevation)){bIsElevated = elevation.TokenIsElevated;}::CloseHandle(hToken);::CloseHandle(hProcess);} while (false);return bIsElevated;}
0 0
- 判断进程是否"以管理员身份运行"
- 判断当前进程是否"以管理员身份运行"的
- 判断当前进程是否"以管理员身份运行"的
- 判断当前进程是否"以管理员身份运行"的
- 获取提升类型和判断进程是否以管理员身份运行
- 获取提升类型和判断进程是否以管理员身份运行
- C# WinForm判断程序是否以管理员身份运行
- 检查程序是否以管理员身份运行
- 在Windows7上用C#判断程序是否以管理员身份运行
- C# WinForm判断Win7下程序是否以管理员身份运行
- C# WinForm判断Win7下程序是否以管理员身份运行
- 判断DOS批处理文件是否以管理员运行
- MFC - 询问是否以管理员身份运行某程序
- WIN7 以管理员身份运行
- VC以管理员身份运行
- 什么是“以管理员身份运行”
- 再说“以管理员身份运行”
- 关于“以管理员身份运行”。。。
- POJ 1789 权值为字符串差值的最小生成树
- HashMap源码分析
- Java 中的内部类
- NKOI 1938 最小路径覆盖
- Catch That Cow<poj3278>
- 判断进程是否"以管理员身份运行"
- Linux网络命令--last和lastlog命令
- POJ2674运动碰撞模拟
- POJ 1125 Stockbroker Grapevine
- TimeUnit是什么?
- MySQL数据库的优化-笔者近六年来一线城市工作实战经验 【转】
- 正则表达式应用
- PyGobject(八十八)Pango系列——简介&简单示例
- 重构