Çözüm C++ ile CPU ve RAM bilgisini alma

Bu konu bir çözümü açıklamaktadır. Herhangi bir çözüm açıklanmadığını düşünüyorsanız konuyu rapor edebilirsiniz.

300319

Zettapat
İlk 5 Haneli Mesajınız!
Katılım
4 Aralık 2018
Mesajlar
21.763
Makaleler
63
Çözümler
478
Merhabalar, işinize yarayacak bir kod paylaşmak istiyorum.

Bu kod ile işlemci adını ve RAM miktarını öğrenebilirsiniz.

C++:
#include <iostream>
#include <intrin.h>
#include <array>
#include <locale.h>
#include <windows.h>

void main(){
        setlocale(LC_ALL, "Turkish");
        std::array<int, 4> integerBuffer = {};
        constexpr size_t sizeofIntegerBuffer = sizeof(int) * integerBuffer.size();
        std::array<char, 64> charBuffer = {};
        constexpr std::array<int, 3> functionIds = {
            // ÜRETİCİ
            0x8000'0002,
            // CPU MODELİ
            0x8000'0003,
            // CPU HIZI
            0x8000'0004
        };
        std::string cpu;
        for (int id : functionIds){
            __cpuid(integerBuffer.data(), id);
            std::memcpy(charBuffer.data(), integerBuffer.data(), sizeofIntegerBuffer);
            cpu += std::string(charBuffer.data());
        }
        MEMORYSTATUSEX statex;
        statex.dwLength = sizeof(statex);
        GlobalMemoryStatusEx(&statex);
        std::cout << "İşlemci: " + cpu + "\n";
        std::cout << "RAM Miktarı: " << (float)statex.ullTotalPhys / (1024 * 1024 * 1024) << " MB\n";
}

Çıktısı
1622973010611.png
 
Son düzenleme:
Elinize sağlık hocam çok yararlı olmuş, geçen gün Stackoverflowda konu açmıştım fakat cevap alamamıştım şuan çok işime yarayacak :)
 
Kodu bu şekilde güncellerseniz RAM miktarını alabilirsiniz.

C++:
#include <iostream>
#include <intrin.h>
#include <array>
#include <locale.h>
#include <windows.h>

void main(){
        setlocale(LC_ALL, "Turkish");
        std::array<int, 4> integerBuffer = {};
        constexpr size_t sizeofIntegerBuffer = sizeof(int) * integerBuffer.size();
        std::array<char, 64> charBuffer = {};
        constexpr std::array<int, 3> functionIds = {
            // ÜRETİCİ
            0x8000'0002,
            // CPU MODELİ
            0x8000'0003,
            // CPU HIZI
            0x8000'0004
        };
        std::string cpu;
        for (int id : functionIds){
            __cpuid(integerBuffer.data(), id);
            std::memcpy(charBuffer.data(), integerBuffer.data(), sizeofIntegerBuffer);
            cpu += std::string(charBuffer.data());
        }
        MEMORYSTATUSEX statex;
        statex.dwLength = sizeof(statex);
        GlobalMemoryStatusEx(&statex);
        std::cout << "İşlemci: " + cpu + "\n";
        std::cout << "RAM Miktarı: " << (float)statex.ullTotalPhys / (1024 * 1024 * 1024) << " MB\n";
}

Çıktısı;
1622973010611.png


@414605
 

Technopat Haberler

Geri
Yukarı