工控编程吧

标题: 上位机MFC如何获得驱动器的序列号 [打印本页]

作者: qq263946146    时间: 2019-8-17 11:00
标题: 上位机MFC如何获得驱动器的序列号


可以参考下面的代码。
GetLogicalDrives获得驱动器。
GetVolumeInformation获得驱动器信息。

  1. void CDemoDlg::OnTest()
  2. {
  3.         CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);
  4.         pList->DeleteAllItems();

  5.         //获得驱动器位掩码
  6.         DWORD dwBitMask = ::GetLogicalDrives();
  7.         if (dwBitMask != 0)
  8.         {
  9.                 int n = 0;

  10.                 TCHAR ch = 'A';

  11.                 while (dwBitMask > 0)
  12.                 {
  13.                         if (dwBitMask % 2 == 1)
  14.                         {
  15.                                 //驱动器名
  16.                                 CString strDiriveName = _T("");
  17.                                 strDiriveName.Format(_T("%c:\"), ch);
  18.                                 pList->InsertItem(n, strDiriveName);

  19.                                 //获得驱动器序列号
  20.                                 DWORD dwSerialNumber = 0;
  21.                                 CString strVolumeName = _T("");
  22.                                 GetVolumeInformation(strDiriveName, NULL,
  23.                                         0, &dwSerialNumber, NULL, NULL, NULL, 0);
  24.                                 CString strSerialNumber = _T("");
  25.                                 strSerialNumber.Format(_T("%04X-%04X"),
  26.                                         HIWORD(dwSerialNumber), LOWORD(dwSerialNumber));
  27.                                 pList->SetItemText(n, 1, strSerialNumber);

  28.                                 n++;
  29.                         }

  30.                         dwBitMask /= 2;

  31.                         ch++;
  32.                 }
  33.         }
  34. }
复制代码







欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4