อยากเขียน C++ อ่านค่า อุณหภูมิ CPU หรือ Information hardware ต่างๆ เช่น RAM เริ่

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

dungjaman
PHP Newbie
PHP Newbie
โพสต์: 3
ลงทะเบียนเมื่อ: 27/02/2011 6:21 pm

อยากเขียน C++ อ่านค่า อุณหภูมิ CPU หรือ Information hardware ต่างๆ เช่น RAM เริ่

โพสต์ที่ยังไม่ได้อ่าน โดย dungjaman »

อยากเขียน C++ อ่านค่า อุณหภูมิ CPU หรือ Information hardware ต่างๆ เช่น RAM เริ่มต้นยังไงดี T_T ช่วยแนะนำทีนะครับ ควรเริ่มต้นจากยังไง ดี ไปไม่ถูกจริงๆ

เอาแค่อ่านค่า เช่น ความเร็ว CPU ,RAM แสดงหน้าจอ หรือ อุณหภูมิ CPU แสดงหน้าจอก็ได้ ช่วยทีนะครับผม T___T
ภาพประจำตัวสมาชิก
imsn
PHP Super Member
PHP Super Member
โพสต์: 375
ลงทะเบียนเมื่อ: 07/05/2010 12:58 pm
ติดต่อ:

Re: อยากเขียน C++ อ่านค่า อุณหภูมิ CPU หรือ Information hardware ต่างๆ เช่น RAM เริ่

โพสต์ที่ยังไม่ได้อ่าน โดย imsn »

ลองดูโค้ดนี้ครับ Copy มาอีกที

โค้ด: เลือกทั้งหมด

int getTotalRAM()
{
    int ret = 0;
#ifdef WIN32
    DWORD v = GetVersion();
    DWORD major =  (DWORD)(LOBYTE(LOWORD(v)));
    DWORD minor =  (DWORD)(HIBYTE(LOWORD(v)));
    DWORD build;
    if (v < 0x80000000) build = (DWORD)(HIWORD(v));
    else build = 0;

    // because compiler static links the function...
    BOOL (__stdcall*GMSEx)(LPMEMORYSTATUSEX) = 0;

    HINSTANCE hIL = LoadLibrary(L"kernel32.dll");
    GMSEx = (BOOL(__stdcall*)(LPMEMORYSTATUSEX))GetProcAddress(hIL, "GlobalMemoryStatusEx");

    if(GMSEx)
    {
        MEMORYSTATUSEX m;
        m.dwLength = sizeof(m);
        if(GMSEx(&m))
        {
                ret = (int)(m.ullTotalPhys>>20);
        }
    }
    else
    {
        MEMORYSTATUS m;
        m.dwLength = sizeof(m);
        GlobalMemoryStatus(&m);
        ret = (int)(m.dwTotalPhys>>20);
    }
#endif
    return ret;
}

int getAvailRAM()
{
    int ret = 0;
#ifdef WIN32
    DWORD v = GetVersion();
    DWORD major =  (DWORD)(LOBYTE(LOWORD(v)));
    DWORD minor =  (DWORD)(HIBYTE(LOWORD(v)));
    DWORD build;
    if (v < 0x80000000) build = (DWORD)(HIWORD(v));
    else build = 0;

    // because compiler static links the function...
    BOOL (__stdcall*GMSEx)(LPMEMORYSTATUSEX) = 0;

    HINSTANCE hIL = LoadLibrary(L"kernel32.dll");
    GMSEx = (BOOL(__stdcall*)(LPMEMORYSTATUSEX))GetProcAddress(hIL, "GlobalMemoryStatusEx");

    if(GMSEx)
    {
        MEMORYSTATUSEX m;
        m.dwLength = sizeof(m);
        if(GMSEx(&m))
        {
                ret = (int)(m.ullAvailPhys>>20);
        }
    }
    else
    {
        MEMORYSTATUS m;
        m.dwLength = sizeof(m);
        GlobalMemoryStatus(&m);
        ret = (int)(m.dwAvailPhys>>20);
    }
#endif
    return ret;
}

int getTotalMemory()
{
    int ret = 0;
#ifdef WIN32
    DWORD v = GetVersion();
    DWORD major =  (DWORD)(LOBYTE(LOWORD(v)));
    DWORD minor =  (DWORD)(HIBYTE(LOWORD(v)));
    DWORD build;
    if (v < 0x80000000) build = (DWORD)(HIWORD(v));
    else build = 0;

    // because compiler static links the function...
    BOOL (__stdcall*GMSEx)(LPMEMORYSTATUSEX) = 0;

    HINSTANCE hIL = LoadLibrary(L"kernel32.dll");
    GMSEx = (BOOL(__stdcall*)(LPMEMORYSTATUSEX))GetProcAddress(hIL, "GlobalMemoryStatusEx");

    if(GMSEx)
    {
        MEMORYSTATUSEX m;
        m.dwLength = sizeof(m);
        if(GMSEx(&m))
        {
                ret = (int)(m.ullTotalPhys>>20) + (int)(m.ullTotalVirtual>>20);
        }
    }
    else
    {
        MEMORYSTATUS m;
        m.dwLength = sizeof(m);
        GlobalMemoryStatus(&m);
        ret = (int)(m.dwTotalPhys>>20) + (int)(m.dwTotalVirtual>>20);
    }
#endif
    return ret;
}

int getAvailMemory()
{
    int ret = 0;
#ifdef WIN32
    DWORD v = GetVersion();
    DWORD major =  (DWORD)(LOBYTE(LOWORD(v)));
    DWORD minor =  (DWORD)(HIBYTE(LOWORD(v)));
    DWORD build;
    if (v < 0x80000000) build = (DWORD)(HIWORD(v));
    else build = 0;

    // because compiler static links the function...
    BOOL (__stdcall*GMSEx)(LPMEMORYSTATUSEX) = 0;

    HINSTANCE hIL = LoadLibrary(L"kernel32.dll");
    GMSEx = (BOOL(__stdcall*)(LPMEMORYSTATUSEX))GetProcAddress(hIL, "GlobalMemoryStatusEx");

    if(GMSEx)
    {
        MEMORYSTATUSEX m;
        m.dwLength = sizeof(m);
        if(GMSEx(&m))
        {
                ret = (int)(m.ullAvailPhys>>20) + (int)(m.ullAvailVirtual>>20);
        }
    }
    else
    {
        MEMORYSTATUS m;
        m.dwLength = sizeof(m);
        GlobalMemoryStatus(&m);
        ret = (int)(m.dwAvailPhys>>20) + (int)(m.dwAvailVirtual>>20);
    }
#endif
    return ret;
}
ช่วยตอบเพราะอยากโปรโหมทเว็บ คิคิคลิกเลย
หาเพื่อนฝรั่งคุย M ...
dungjaman
PHP Newbie
PHP Newbie
โพสต์: 3
ลงทะเบียนเมื่อ: 27/02/2011 6:21 pm

Re: อยากเขียน C++ อ่านค่า อุณหภูมิ CPU หรือ Information hardware ต่างๆ เช่น RAM เริ่

โพสต์ที่ยังไม่ได้อ่าน โดย dungjaman »

ขอบคุณมากครับ แต่ผมทดสอบ ลองเรียกใช้ ฟังชันก์ ด้วย C++ ของ Borland C++ แล้วครับ ปรากฏ ว่า มัน return ค่า 0 กลับมาหมดเลย ไม่ทราบว่าผมใช้มันผิด หรือต้องไปปรับมันตรงไหน รึเปล่าครับ แต่ Compilie ผ่าน นะครับ เรียกสร้าง main มาเรียกใช้ มัน return 0 กลับมาหมดทุกฟังก์ชันเลย เลยงง มาก ช่วยแนะนำทีนะครับ ขอบพระคุณมากนะครับ
ภาพประจำตัวสมาชิก
ecitepage.com
PHP Sr. Member
PHP Sr. Member
โพสต์: 52
ลงทะเบียนเมื่อ: 09/10/2010 2:54 pm
ติดต่อ:

Re: อยากเขียน C++ อ่านค่า อุณหภูมิ CPU หรือ Information hardware ต่างๆ เช่น RAM เริ่

โพสต์ที่ยังไม่ได้อ่าน โดย ecitepage.com »

ไม่ได้เรียนนานเหมือนกัน ลองลด การทำงานมันลงหน่อย เพื่อค่อยๆเช็คดูครับ
ประกาศซื้อขาย การดูแล บ้านคอนโด
http://www.ecitepage.com
dungjaman
PHP Newbie
PHP Newbie
โพสต์: 3
ลงทะเบียนเมื่อ: 27/02/2011 6:21 pm

Re: อยากเขียน C++ อ่านค่า อุณหภูมิ CPU หรือ Information hardware ต่างๆ เช่น RAM เริ่

โพสต์ที่ยังไม่ได้อ่าน โดย dungjaman »

พี่ ครับ code ที่ให้มาผมใช้งานได้แล้วนะครับ โทษทีนะครับ รู้สึกต้องเพิ่มไรนิดหน่อย
แต่ okครับ ผลที่ได้ดังรูปเลย http://image.ohozaa.com/show.php?id=539 ... 9536c34bf5

ขอบพระคุณมากนะครับ

อยากทราบจังเลย ว่าตัวอย่าง code นี้เอามาจากที่ไหนหรอครับ ผมอยากจะศึกษา มั่งจังเลย

เพราะผมจะทำให้มันหา อุณหภูมิ CPU ได้ด้วย ถ้าจะกรุณา ช่วยทีนะครับผม ^^''

ขอบพระคุณมากครับ
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 47