반응형
개발환경은 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);
위 처럼 하면 재부팅이 시작된다. 예외처리는 하지 않은 코드이다.
반응형
'IT > C++' 카테고리의 다른 글
[MFC] Shared Folder 찾아서 제거하기 (0) | 2017.01.16 |
---|---|
[MFC] Radio Button 투명 배경 (0) | 2016.11.01 |
[MFC] 시작프로그램에 등록하기 (0) | 2016.10.27 |
[MFC] 심플한 로그 함수 (0) | 2016.10.18 |
[MFC] CProgressCtrl Marquee 속성 설정 (0) | 2016.10.14 |
Visual Studio 2012 Update 4 이상에서 XP 용 C++ 11 프로그램 구성 (0) | 2016.10.12 |
[MFC] 프로세스를 이미지 이름으로 검색하여 종료를 기다리기 (0) | 2016.10.07 |
제어판 Item 실행 (0) | 2016.09.27 |
MFC 에서 dll에 CStringArray를 인자 전달시 Heap Violations 에러 발생 (0) | 2016.09.23 |
_tcscpy_s 사용시 주의사항 (0) | 2016.09.10 |
댓글