// 在MFC的OnInitDialog中调用以下代码可以使用CrystalDiskInfo工具中提取硬盘数据的扩展功能。
// 此代码基于VS2017和CrystalDiskInfo 8.12.0版本。
// 请根据自己的实际情况修改路径和参数。

// 包含CrystalDiskInfo提供的函数声明
#include "..\\..\\CrystalDiskInfo\\Src\\DiskInfo\\DiskInfo.h"

BOOL CMyDialog::OnInitDialog()
{
    // 父类初始化
    CDialogEx::OnInitDialog();

    // 打开CrystalDiskInfo工具
    if (DiskInfo_Open(L"C:\\Program Files\\CrystalDiskInfo\\CrystalDiskInfo.exe", TRUE))
    {
        // 获取第一个硬盘的温度
        TCHAR str[256] = { 0 };
        int temperature = 0;
        DiskInfo_GetTemperature(0, str, &temperature);
        CString strTemp;
        strTemp.Format(_T("第一个硬盘的温度为:%d℃"), temperature);
        MessageBox(strTemp, _T("温度信息"), MB_OK);

        // 获取第二个硬盘的序列号和容量
        CString strSerial, strCapacity;
        DiskInfo_GetSerialNumber(1, strSerial.GetBuffer(1024), 1024);
        strSerial.ReleaseBuffer();
        DiskInfo_GetCapacity(1, strCapacity.GetBuffer(1024), 1024);
        strCapacity.ReleaseBuffer();
        CString strInfo;
        strInfo.Format(_T("第二个硬盘的序列号为:%s,容量为:%s"), strSerial, strCapacity);
        MessageBox(strInfo, _T("硬盘信息"), MB_OK);

        // 关闭CrystalDiskInfo工具
        DiskInfo_Close();
    }

    return TRUE;
}