[C++] 纯文本查看 复制代码 #include <windows.h>
#include <iostream>
int main()
{
HANDLE hToKen;
TOKEN_PRIVILEGES tkp;//存储当前权限
if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToKen));
{
printf("获得权限失败");
}
//拿出权限
LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
//更改权限
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
//使用权限
AdjustTokenPrivileges(hToKen,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
//检测权限是否更改成功
if(GetLastError() != ERROR_SUCCESS)
{
printf("权限未更改");
}
//ExitWindows(EWX_SHUTDOWN,0); 为什么这行代码只能注销不能关机
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |
SHTDN_REASON_MINOR_UPGRADE |
SHTDN_REASON_FLAG_PLANNED))
return 0;
} |