Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на WinApi, C++Builder, Visual C++


Информационный Канал Subscribe.Ru


Выпуск № 16-2003 BCBDEV.BY.RU

Здравствуйте уважаемые подписчики!

Перед вами очередной выпуск рассылки "Программирование на WinApi"

Получение информации о логическом диске
В прошлом номере рассылки был приведен пример получения списка логических дисков, установленных в системе. Эта рассылка является продолжением предыдущей, и в ней мы получим информацию о единичном диске из списка доступных.
void GetRootInfo(char *root)
{
 DWORD LongFNameLen = 0, flags = 0;
 char volume[32], FATName[32];
 DWORD serialnum = 0;
 FillMemory(volume, 32, 0);
 FillMemory(FATName, 32, 0);
 //Отключаем вывод сообщения о вставке диска в дисковод
 UINT oldErrMode = SetErrorMode(SEM_FAILCRITICALERRORS);
 BOOL res = GetVolumeInformation(root, volume, 32, &serialnum, &LongFNameLen, &flags, FATName, 32);
 if (res != 0)
 {
  // Преобразовываем серийный номер в более удобочитаемую форму
  char tmp[256];
  FillMemory(tmp, 256, '0');
  char serial[16];
  FillMemory(serial, 16, 0);
  ltoa(serialnum, serial, 16);
  CopyMemory(&tmp[8 - strlen(serial)], serial, strlen(serial));
  for (int i = 0; i < 4; i++)
   serial[i] = toupper(tmp[i]);
  serial[i++] = '-';
  for (; i < 9; i++)
   serial[i]  = toupper(tmp[i-1]);

  FillMemory(tmp, 256, 0);
  sprintf(tmp, "FAT Name:%s, Root:%s, RootVolume:%s, RootSerial:%s", FATName, root, volume, serial);
  MessageBox(NULL, tmp, "Volume Information", MB_OK);
 }
 SetErrorMode(oldErrMode);
}

// Использовать так:
 GetRootInfo("C:\\"); 

Удачи Вам в Ваших делах Куковинец Андрей aka Juggernaut

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное