C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[69247] CPU-Z의 RAM 정보를 가져오는 방법이 있을까여?
압9정 [] 2252 읽음    2013-03-19 15:14
안녕하세염.^^ 제가 RAM카드의 정보를 가져올려고 API중에 Win32_PhysicalMemory class에서 가져올려고 했습니다.. 그런데 여기

서는 RAM카드 갯수나 제조회사, Part Number, Serial Number 만 가져오는게 됬습니다.ㅠ  제가 가져오고 싶은 정보는 위의 사진

에 있는 Module Size(4096 MBytes), Max Bandwidth(PC3-10700( 667MHz))등의 성능 정보를 가져오려고 합니다.

혹시 방법을 아시는 분 있나요??

밑에는 Win32_PhysicalMemory에서 제조회사와 Serial Number를 가져오는 소스입니다.^^

void GetAPI()
{
    HRESULT hres;

    hres = CoInitializeEx(0, COINIT_MULTITHREADED);
    //if (FAILED(hres))
    CoInitializeSecurity(
        NULL,
        -1,
        NULL,
        NULL,
        RPC_C_AUTHN_LEVEL_DEFAULT,
        RPC_C_IMP_LEVEL_IMPERSONATE,
        NULL,
        EOAC_NONE,
        NULL
    );
    //if (FAILED(hres))
    IWbemLocator *pLoc = NULL;

    CoCreateInstance(
        CLSID_WbemAdministrativeLocator,
        0,
        CLSCTX_INPROC_SERVER,
        IID_IWbemLocator,
        (LPVOID *) &pLoc
    );
    //if (FAILED(hres))
    IWbemServices *pSvc = NULL;

    pLoc->ConnectServer(
        _bstr_t(L"ROOT\\CIMV2"),
        NULL,
        NULL,
        0,
        NULL,
        0,
        0,
        &pSvc
    );
    //if (FAILED(hres))
    //"Connected to ROOT\\CIMV2 WMI namespace"
    CoSetProxyBlanket(
        pSvc,
        RPC_C_AUTHN_WINNT,
        RPC_C_AUTHZ_NONE,
        NULL,
        RPC_C_AUTHN_LEVEL_CALL,
        RPC_C_IMP_LEVEL_IMPERSONATE,
        NULL,
        EOAC_NONE
    );
    //if (FAILED(hres))
    IEnumWbemClassObject* pEnumerator = NULL;

    pSvc->ExecQuery(
        bstr_t("WQL"),
        bstr_t("SELECT * FROM Win32_PhysicalMemory"),
        WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
        NULL,
        &pEnumerator
    );
    //if (FAILED(hres))
    IWbemClassObject *pclsObj = NULL;
    ULONG uReturn = 0;

    if(pEnumerator)
    {
        pEnumerator->Reset();
        pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn);
        if(uReturn != 0)
        {
            VARIANT vtProp;
            String arr_InfoList[] = {
                L"Manufacturer",
                L"PartNumber",
                L"SerialNumber",
            };

            for(int nIndex = 0; nIndex < sizeof(arr_InfoList); nIndex++)
            {
                ZeroMemory(&vtProp, sizeof(vtProp));
                pclsObj->Get(arr_InfoList[nIndex].w_str(), 0, &vtProp, 0, 0);
                if (vtProp.bstrVal)
                {
                    Main->Memo1->Lines->Add(vtProp.bstrVal);    //String형 데이터
                    VariantClear(&vtProp);
                }
                Application->ProcessMessages();
            }
            pclsObj->Release();
            pclsObj=NULL;
        }
    }

    pSvc->Release();
    pLoc->Release();
    if(pEnumerator) pEnumerator->Release();
    if(pclsObj) pclsObj->Release();
    CoUninitialize();
}

+ -

관련 글 리스트
69247 CPU-Z의 RAM 정보를 가져오는 방법이 있을까여? 압9정 2252 2013/03/19
69256     Re:CPU-Z의 RAM 정보를 가져오는 방법이 있을까여? 김도완 2241 2013/03/19
69255     Re:CPU-Z의 RAM 정보를 가져오는 방법이 있을까여? 꼬부기 1901 2013/03/19
69249     Re:CPU-Z의 RAM 정보를 가져오는 방법이 있을까여? Lyn 2084 2013/03/19
69251         Re:Re:CPU-Z의 RAM 정보를 가져오는 방법이 있을까여? 압9정 2158 2013/03/19
69252             Re:Re:Re:CPU-Z의 RAM 정보를 가져오는 방법이 있을까여? Lyn 2123 2013/03/19
69254                 Re:Re:Re:Re:CPU-Z의 RAM 정보를 가져오는 방법이 있을까여?(사진) 압9정 2122 2013/03/19
69253                 Re:Re:Re:Re:CPU-Z의 RAM 정보를 가져오는 방법이 있을까여? 압9정 2037 2013/03/19
69250         Re:Re:CPU-Z의 RAM 정보를 가져오는 방법이 있을까여? 압9정 1993 2013/03/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.