Q&A

  • 윈도2000에서 시스템 셧다운하는 방법은?
윈98에서는 ExitWindowsEx(EWX_SHUTDOWN, 0); 라고하면 시스템이 종료되는데



2000에서는 전혀 반응이 없더군요..혹시 방법을 아시는 분은 좀 알려주세요...

1  COMMENTS
  • Profile
    김경환 2001.12.21 10:43
    김대환 wrote:

    > 윈98에서는 ExitWindowsEx(EWX_SHUTDOWN, 0); 라고하면 시스템이 종료되는데

    >

    > 2000에서는 전혀 반응이 없더군요..혹시 방법을 아시는 분은 좀 알려주세요...



    NT기반인 Windows2000, XP는 해당 프로그램이 시스템권한이 있어야만 합니다.

    다시말해 시스템을 Shutdown, Reboot 할 수 있는 권한을 받아야만 위의 함수를

    성공적으로 실행할 수 있지요.



    아래 소스 참고하세요.

    =======================================



    CurrentProc := GetCurrentProcess;

    OpenProcessToken (CurrentProc,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,TokenHandle);

    LookupPrivilegeValue (Nil, 'SeShutdownPrivilege',TokenPriv.Privileges[0].LUID);

    TokenPriv.PrivilegeCount := 1;

    TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;

    AdjustTokenPrivileges (TokenHandle, False, TokenPriv,0, Nil, Nil);