诸如SetupCopyOEMInf等函数调用时需要管理员权限,否则会返回失败.那么在调用它们之前用下面的func来提升权限就行:
BOOL EnablePriv()
{
HANDLE hToken;
if ( OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken) )
{
TOKEN_PRIVILEGES tkp;
if(!LookupPrivilegeValue( NULL,SE_DEBUG_NAME,&tkp.Privileges[0].Luid ))
return FALSE;//修改进程权限
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
if(!AdjustTokenPrivileges( hToken,FALSE,&tkp,sizeof tkp,NULL,NULL ))
return FALSE;//通知系统修改进程权限
DWORD err = GetLastError( );
//return( (GetLastError()==ERROR_SUCCESS) );
return TRUE;
}
return FLASE;
}
阅读(2214) | 评论(1) | 转发(0) |