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

태풍 풀라산(PULASAN) 영향과 이동 경로

태풍 풀라산(PULASAN) 영향과 이동 경로 태풍 풀라산(PULASAN)은 현재 한반도에 큰 영향을 미치고 있습니다. 이 태풍은 강력한 비와 바람을 동반하며, 여러 기상 변화와 위험을 초래할 것으로 예상됩니다. 1. 태풍의 한반도 영향 태풍 풀...