본문 바로가기
IT/C++

[MFC] 재부팅 기능

by Spring Up!! 2016. 10. 13.
반응형
개발환경은 Windows 7 64bit, Visual Studio 2013 버전이다


HANDLE hCurHandle = GetCurrentProcess();
HANDLE hNewHandle = NULL;

OpenProcessToken(hCurHandle, TOKEN_ADJUST_PRIVILEGES, &hNewHandle);

TOKEN_PRIVILEGES tp;
LUID luid;
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &luid);

tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hNewHandle, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILIGES)NULL, (PDWORD)NULL));

ExitWindowsEx(EWX_REBOOT | EWX_FORCEIFHUNG, SHTDN_REASON_FLAG_PLANNED);


위 처럼 하면 재부팅이 시작된다. 예외처리는 하지 않은 코드이다.


반응형

댓글