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


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