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 실행 함수를 호출하여 관리자 권한으로 실행할 수 있습니다.

말레이시아 항공 수하물 규정: 크기 제한 및 대형 수하물 추가 요금 분석

말레이시아 항공 수하물 규정: 크기 제한 및 대형 수하물 추가 요금 분석 말레이시아 항공을 이용하는 승객들은 항공사의 수하물 규정을 철저히 준수해야 합니다. 특히 위탁수하물의 크기와 무게는 항공사에서 정한 기준에 맞춰야 하며, 이를 초과할 경우 추가 ...