PC 셧다운 (shutdown) | |||
| |||
procedure ExitWin2000(ewx: integer); var hToken: THANDLE; hProc: THANDLE; mLUID: TLargeInteger; mPriv, mNewPriv: TOKEN_PRIVILEGES; mBufferLength: DWord; begin if not (ewx in [1, 2]) then exit; hProc := GetCurrentProcess(); OpenProcessToken(hProc, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken); LookupPrivilegeValue('', 'SeShutdownPrivilege', mLUID); mPriv.PrivilegeCount := 1; mPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; mPriv.Privileges[0].Luid := mLUID; AdjustTokenPrivileges(hToken, False, mPriv, (4 + (12 * mPriv.PrivilegeCount)), mNewPriv, mBufferLength); case ewx of 1: ExitWindowsEx(EWX_FORCE + EWX_REBOOT, 0); 2: ExitWindowsEx(EWX_FORCE + EWX_POWEROFF, 0); end; end; procedure shutDown(); var os:OSVERSIONINFO; begin os.dwOSVersionInfoSize:=sizeOf(TOSversionInfo); getVersionEx(os); if (os.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS) then exitWindowsEx(EWX_SHUTDOWN,0); if (os.dwPlatformId=VER_PLATFORM_WIN32_NT) then exitWin2000(2); end; Tags: shutdown 윈도우즈 | |||
| |||
| |||
로그인을 하시면 댓글을 등록 할 수 있습니다. |