Çö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.
Katılım
28 Ocak 2020
Mesajlar
20.378
Makaleler
54
Çözümler
467
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ı
 
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
 
Bu kodu ne zaman kullanmak nasip olur bilmem.

 
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ı;


@414605
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…