2024年1月24日发(作者:)

C提升权限关机重启#include

#include

BOOL EnableShutDownPriv()

{

HANDLE hToken = NULL;

TOKEN_PRIVILEGES tkp = { 0 };

if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) {

return FALSE;

}

if (!LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &eges[0].Luid)) { //其他权限 只需要修改SE_SHUTDWON_NAME即可

CloseHandle(hToken);

return FALSE;

}

egeCount = 1;

eges[0].Attributes = SE_PRIVILEGE_ENABLED;

if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), NULL, NULL)) {

CloseHandle(hToken);

return FALSE;

}

return TRUE;

}

BOOL ReSetWindows(DWORD dwFlags, BOOL bForce)

{

//Check the param;

if (dwFlags != EWX_LOGOFF && dwFlags != EWX_REBOOT && dwFlags != EWX_SHUTDOWN) {

return FALSE;

}

//Get the os version;

OSVERSIONINFO osvi = { 0 };

rsionInfoSize = sizeof(OSVERSIONINFO);

if (!GetVersionEx(&osvi)) {

return FALSE;

}

if (formId == VER_PLATFORM_WIN32_NT) {

EnableShutDownPriv();

}

dwFlags |= (bForce != FALSE) ? EWX_FORCE : EWX_FORCEIFHUNG;

return ExitWindowsEx(dwFlags, 0);

}

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)

{

if (_tcscmp(lpCmdLine, _T("/r")) == 0) {