简单的提升进程权限代码,里面用到的权限参数根据不同需要设置:
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
//
提升权限
if
(
!
::LookupPrivilegeValue(NULL,
SE_DEBUG_NAME
,
&
tkp.Privileges[
0
].Luid))
{
return
0
;
}
tkp.PrivilegeCount
=
1
;
tkp.Privileges[
0
].Attributes
=
SE_PRIVILEGE_ENABLED;
//
打开进程的令牌环
if
(
!
::OpenProcessToken(::GetCurrentProcess(), TOKEN_ALL_ACCESS
,
&
hToken))
{
return
0
;
}
//
修改当前进程权限
if
(
!
::AdjustTokenPrivileges(hToken,FALSE,
&
tkp,
0
,(PTOKEN_PRIVILEGES)NULL,
0
))
{
return
0
;
}
一般关机之类的操作,都需要首先提升一下进程权限