| 
 | 
 
 
 楼主 |
发表于 2011-8-5 14:36:20
|
显示全部楼层
 
 
 
HANDLE hToken; 
  
 TOKEN_PRIVILEGES tp; 
  
 LUID luid; 
 if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY | TOKEN_READ,&hToken)) 
   
 { 
  return FALSE;  
 } 
  
 if(!LookupPrivilegeValue(NULL, PrivilegeName, &luid)) 
   
 {  
  return FALSE;  
 } 
   
 tp.PrivilegeCount        = 1; 
  
 tp.Privileges[0].Luid    = luid; 
  
 tp.Privileges[0].Attributes = (IsEnable) ? SE_PRIVILEGE_ENABLED : 0; 
   
 BOOL bSucc = AdjustTokenPrivileges(hToken,FALSE,&tp,NULL,NULL,NULL);  
  
 CloseHandle(hToken);  
 return (GetLastError() == ERROR_SUCCESS); 
   
函数用法:定义权限函数 
函数原理:这个函数首先用 OpenProcessToken 获得当前进程访问令牌的句柄,然后调用 LookupPrivilegeValue  得到相应权限的标识符,然后用 AdjustTokenPrivileges 来激活程序的权限。 
 |   
 
 
 
 |