检查当前用户是否具有管理员权限
2008-07-30 19:33
489 查看
//最后修改日期 2009-10-26
#include <lm.h>
#pragma comment (lib,"Netapi32.lib")
bool Is_Admin_Privilege()
{
bool privilege = true;
OSVERSIONINFO OSV = {sizeof(OSVERSIONINFO),0};
if(GetVersionEx(&OSV))
{
if(OSV.dwPlatformId == VER_PLATFORM_WIN32_NT) //NT 2000 XP
{
privilege = false;
HMODULE hModule = NULL;
if(hModule = LoadLibrary( _T("netapi32.dll") ))
{
NET_API_STATUS (NET_API_FUNCTION * pNet_Api_Fun) (LPCWSTR,LPCWSTR,DWORD,LPBYTE *)
= (NET_API_STATUS(NET_API_FUNCTION*)(LPCWSTR,LPCWSTR,DWORD,LPBYTE *))GetProcAddress(hModule,"NetUserGetInfo");
if(pNet_Api_Fun)
{
WCHAR WuserName[UNLEN + 1] = {0};
DWORD nSize = UNLEN;
if(GetUserNameW(WuserName,&nSize))
{
LPUSER_INFO_1 pUserInfo = NULL;
NET_API_STATUS nStatus = pNet_Api_Fun(NULL,WuserName,1,(LPBYTE*)&pUserInfo);
if(nStatus == NERR_Success)
{
if(USER_PRIV_ADMIN == (pUserInfo->usri1_priv & USER_PRIV_MASK))
{
privilege = true;
}//
}
if(pUserInfo != NULL)
{
NET_API_STATUS (NET_API_FUNCTION *pApi_Fun1) (LPVOID) = ((NET_API_STATUS (NET_API_FUNCTION *)(LPVOID) ) GetProcAddress(hModule,"NetApiBufferFree"));
if(pApi_Fun1)
{
pApi_Fun1(pUserInfo);
}
}
}
else
{
DWORD err = GetLastError();
}
}
else
{
DWORD err = GetLastError();
}
FreeLibrary(hModule);
}
else
{
DWORD err = GetLastError();
}
if(!privilege)
{
AfxMessageBox(_T("请以管理员方式运行本软件"),MB_OK | MB_ICONSTOP);
}
}
}
return(privilege);
}
#include <lm.h>
#pragma comment (lib,"Netapi32.lib")
bool Is_Admin_Privilege()
{
bool privilege = true;
OSVERSIONINFO OSV = {sizeof(OSVERSIONINFO),0};
if(GetVersionEx(&OSV))
{
if(OSV.dwPlatformId == VER_PLATFORM_WIN32_NT) //NT 2000 XP
{
privilege = false;
HMODULE hModule = NULL;
if(hModule = LoadLibrary( _T("netapi32.dll") ))
{
NET_API_STATUS (NET_API_FUNCTION * pNet_Api_Fun) (LPCWSTR,LPCWSTR,DWORD,LPBYTE *)
= (NET_API_STATUS(NET_API_FUNCTION*)(LPCWSTR,LPCWSTR,DWORD,LPBYTE *))GetProcAddress(hModule,"NetUserGetInfo");
if(pNet_Api_Fun)
{
WCHAR WuserName[UNLEN + 1] = {0};
DWORD nSize = UNLEN;
if(GetUserNameW(WuserName,&nSize))
{
LPUSER_INFO_1 pUserInfo = NULL;
NET_API_STATUS nStatus = pNet_Api_Fun(NULL,WuserName,1,(LPBYTE*)&pUserInfo);
if(nStatus == NERR_Success)
{
if(USER_PRIV_ADMIN == (pUserInfo->usri1_priv & USER_PRIV_MASK))
{
privilege = true;
}//
}
if(pUserInfo != NULL)
{
NET_API_STATUS (NET_API_FUNCTION *pApi_Fun1) (LPVOID) = ((NET_API_STATUS (NET_API_FUNCTION *)(LPVOID) ) GetProcAddress(hModule,"NetApiBufferFree"));
if(pApi_Fun1)
{
pApi_Fun1(pUserInfo);
}
}
}
else
{
DWORD err = GetLastError();
}
}
else
{
DWORD err = GetLastError();
}
FreeLibrary(hModule);
}
else
{
DWORD err = GetLastError();
}
if(!privilege)
{
AfxMessageBox(_T("请以管理员方式运行本软件"),MB_OK | MB_ICONSTOP);
}
}
}
return(privilege);
}
相关文章推荐
- 检查当前用户是否具有管理员权限
- VC++中如何判断当前用户是否具有管理员权限
- 判断Oracle中当前的用户是否为管理员权限
- 使当前用户具有超级管理员权限
- 如何检查某个用户是否具有某个权限对象上定义的某种权限
- 如何检查某个用户是否具有某个权限对象上定义的某种权限
- vc 判断当前用户是否在管理员组以及是否SYSTEM权限运行
- vc判断当前用户是否具有administrator 权限代码
- 检查 当前用户是否 管理员 isUserAdmin
- 微信用户提现不能到账,显示NO_AUTH | 产品权限验证失败,请查看您当前是否具有该产品的权限
- 11.16 如何验证当前用户是否具有指定的功能权限?
- 微信用户提现不能到账,显示NO_AUTH | 产品权限验证失败,请查看您当前是否具有该产品的权限(企业付款到零钱)
- 如何检查某个用户是否具有某个权限对象上定义的某种权限
- 如何检查某个用户是否具有某个权限对象上定义的某种权限
- 查看用户是否具有sysoper和sysdba权限
- 判断当前进程是否以管理员权限运行(AllocateAndInitializeSid后,用CheckTokenMembership与AdministratorsGroup进行比较,和Delphi的那个例子还有点不一样)
- 获取当前系统用户是管理员权限还是普通用户权限
- 判断当前登陆的用户是否是系统管理员
- 判断当前账户是否有管理员权限【包括vista】(转)
- 检查用户是否有访问权限