判断当前进程是否"以管理员身份运行"的
2011-07-17 18:10
1026 查看
判断当前进程是否"以管理员身份运行"的,是否有管理员权限.成功返回真,失败返回假.仅在Vista、Windows7有效,更低版本的系统直接返回假.
BOOL IsAdministrator() {//判断是否管理员模式
BOOL bIsElevated = FALSE;
HANDLE hToken = NULL;
UINT16 uWinVer = LOWORD(GetVersion());
uWinVer = MAKEWORD(HIBYTE(uWinVer),LOBYTE(uWinVer));
if (uWinVer < 0x0600))//不是VISTA、Windows7
return(FALSE);
if (OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,&hToken)) {
struct {
DWORD TokenIsElevated;
} /*TOKEN_ELEVATION*/te;
DWORD dwReturnLength = 0;
if (GetTokenInformation(hToken,/*TokenElevation*/(_TOKEN_INFORMATION_CLASS)20,&te,sizeof(te),&dwReturnLength)) {
if (dwReturnLength == sizeof(te))
bIsElevated = te.TokenIsElevated;
}
CloseHandle( hToken );
}
return bIsElevated;
}易语言源码:
BOOL IsAdministrator() {//判断是否管理员模式
BOOL bIsElevated = FALSE;
HANDLE hToken = NULL;
UINT16 uWinVer = LOWORD(GetVersion());
uWinVer = MAKEWORD(HIBYTE(uWinVer),LOBYTE(uWinVer));
if (uWinVer < 0x0600))//不是VISTA、Windows7
return(FALSE);
if (OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,&hToken)) {
struct {
DWORD TokenIsElevated;
} /*TOKEN_ELEVATION*/te;
DWORD dwReturnLength = 0;
if (GetTokenInformation(hToken,/*TokenElevation*/(_TOKEN_INFORMATION_CLASS)20,&te,sizeof(te),&dwReturnLength)) {
if (dwReturnLength == sizeof(te))
bIsElevated = te.TokenIsElevated;
}
CloseHandle( hToken );
}
return bIsElevated;
}易语言源码:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/06/d94f6df8448c2db3bf56d6f64313ab42.gif)
相关文章推荐
- 判断当前进程是否"以管理员身份运行"的
- 判断当前进程是否"以管理员身份运行"的
- 判断当前进程是否"以管理员身份运行"的
- 判断进程是否"以管理员身份运行"
- 判断当前进程是否以管理员权限运行
- 判断当前进程是否以管理员程序运行的方法
- 获取提升类型和判断进程是否以管理员身份运行
- 判断当前进程是否以管理员权限运行(AllocateAndInitializeSid后,用CheckTokenMembership与AdministratorsGroup进行比较,和Delphi的那个例子还有点不一样)
- 获取提升类型和判断进程是否以管理员身份运行
- C# WinForm判断Win7下是否是管理员身份运行
- 判断程序是否是以 管理员 身份运行 visual c++
- C# WinForm判断程序是否以管理员身份运行,UAC权限的提权与降权
- 判断当前进程是否以管理员权限启动的
- 判断进程是否以管理员权限运行
- C# WinForm判断Win7下程序是否以管理员身份运行
- C#判断当前程序是否通过管理员运行的方法
- C# WinForm判断Win7下程序是否以管理员身份运行
- 判断当前进程是否以管理员权限启动的
- vc 判断当前用户是否在管理员组以及是否SYSTEM权限运行
- C#:判断当前程序是否通过管理员运行