mfc 에서 관리자 권한(Administrator authority)을 가져오는 코드

mfc 에서 관리자 권한을 가져오는 코드는?

MFC에서 관리자 권한을 가져오기 위해서는 주로 UAC(User Account Control)를 사용하거나 Shell 실행 함수를 호출하는 방법이 사용됩니다. 아래는 MFC에서 관리자 권한을 가져오는 두 가지 방법의 예제 코드입니다.

UAC를 사용하는 방법:

BOOL IsRunAsAdmin()

{

    BOOL bIsRunAsAdmin = FALSE;

    PSID pAdminSID = NULL;


    if (CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, NULL, &pAdminSID))

    {

        CheckTokenMembership(NULL, pAdminSID, &bIsRunAsAdmin);

        FreeSid(pAdminSID);

    }


    return bIsRunAsAdmin;

}


int main()

{

    if (!IsRunAsAdmin())

    {

        // 관리자 권한으로 실행하지 않은 경우, UAC를 사용하여 관리자 권한으로 재실행

        SHELLEXECUTEINFO info = { sizeof(SHELLEXECUTEINFO) };

        info.lpVerb = _T("runas");

        info.lpFile = _T("YOUR_PROGRAM.EXE");

        info.nShow = SW_SHOW;


        if (!ShellExecuteEx(&info))

        {

            // UAC 실행 실패

            AfxMessageBox(_T("UAC 실행에 실패했습니다."));

        }

    }

    else

    {

        // 관리자 권한으로 실행한 경우, 프로그램 실행

        AfxMessageBox(_T("프로그램을 관리자 권한으로 실행합니다."));

    }


    return 0;

}


Shell 실행 함수를 호출하는 방법:

int main()

{

    // 관리자 권한으로 실행할 프로그램 경로

    CString programPath = _T("YOUR_PROGRAM.EXE");


    // ShellExecute 함수를 호출하여 관리자 권한으로 실행

    HINSTANCE hInstance = ShellExecute(NULL, _T("runas"), programPath, NULL, NULL, SW_SHOWNORMAL);

    if (reinterpret_cast<int>(hInstance) <= 32)

    {

        // 실행 실패

        AfxMessageBox(_T("프로그램을 실행하는데 문제가 발생했습니다."));

    }

    else

    {

        // 실행 성공

        AfxMessageBox(_T("프로그램이 관리자 권한으로 실행됩니다."));

    }


    return 0;

}

위의 코드들은 C++ MFC 프로그램에서 관리자 권한을 가져오는 방법을 보여줍니다. 사용자가 관리자 권한으로 실행하지 않은 경우, UAC를 사용하여 재실행하거나 Shell 실행 함수를 호출하여 관리자 권한으로 실행할 수 있습니다.

위탁 수하물 무게 규정에 대한 상세 설명

위탁 수하물 무게 규정에 대한 상세 설명 위탁 수하물 무게 규정이란? 항공 여행 시 위탁 수하물(기내에 직접 가지고 타지 않고 비행기 화물칸에 실리는 짐)의 무게를 제한하는 규정입니다. 일반적으로 항공권 종류, 노선, 항공사에 따라 무료로 부칠 수 있...