Programming - cpueblo.com

시스템 리부팅 - GetVersionEx(), ShutDownNT(), ExitWindowsEx()


글쓴이 : 스네이… 날짜 : 2004-08-27 (금) 14:50 조회 : 5629
데브피아에서 긁어온 글입니다.
BOOL IsOsNT() { ////////////////////////////// // OS detection routine. OSVERSIONINFO version; version.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); // CString strplatformid; BOOL bNT = FALSE; if(GetVersionEx(&version)) { DWORD dwplatformid = version.dwPlatformId; switch (version.dwPlatformId) { case VER_PLATFORM_WIN32s: // strplatformid.Format("Windows 3.1"); bNT = FALSE; break; case VER_PLATFORM_WIN32_WINDOWS: if(version.dwMinorVersion == 0) { // strplatformid.Format("Windows 95"); bNT = FALSE; }else if(version.dwMinorVersion > 0) { // strplatformid.Format("Windows 98"); bNT = FALSE; } break; case VER_PLATFORM_WIN32_NT: // strplatformid.Format("Windows NT"); bNT = TRUE; break; default: bNT = FALSE; break; } } return bNT; }
리부팅하려면 메시지 창을 하나 보여주고 다음과 같이 OS 에 따라 적절한 function 을 call 해준다. //-------------------------------------------------------------------- int nResult = ::MessageBox(NULL, "새로운 설정 내용을 적용하기위해 시스템을 다시 시작합니다.", "시스템 설정 바꾸기", MB_OK); if(nResult == IDOK) { if(IsOsNT()) { ShutDownNT(); //NT,2000 }else { ExitWindowsEx( EWX_REBOOT, 0 ); //win95,98,ME } }
리부팅에 관한 글은 여기 팁&트릭에도 있고 Q&A 에도 있는걸 봤습니다.
이 글은 www.freechal.com/vcb 의 [프로그래밍 팁] 게시판에서 퍼온 글입니다.

권금강(4boys)