首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于程序的执行权限,该怎么处理

2012-03-20 
关于程序的执行权限我用vs写了个程序直接运行实现了我的要求(win7中,vs用了管理员权限,不用的话不行),程序

关于程序的执行权限
我用vs写了个程序直接运行实现了我的要求(win7中,vs用了管理员权限,不用的话不行),程序中也有用来提升权限的代码EnableDebugPriv()
但我直接运行生成的exe程序却没实现程序的功能,我试过生成release,加上管理员权限,还是不行。这是哪里出了问题?求指点,这是为什么啊!!!

[解决办法]
显然代码有问题
void EnableDebugPriv()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
BOOL fOk = FALSE;

OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid.HighPart=0;
tkp.Privileges[0].Luid.LowPart = 20;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken,0,&tkp,0,NULL,NULL);


int t = GetLastError();


CloseHandle(hToken);
}
[解决办法]
ntdll.dll不需要LoadLibrary和FreeLibrary,直接用GetModuleHandle得到基地址

热点排行