Главная Информер Журнал Форум Wiki DRKB Discuz!ML Помощь проекту


Как проверить, есть ли дискета в дисководе?

BOOL IsDiskInDrive ( LPTSTR lpszDrive )
{
   UINT     errmode;
   TCHAR    szVolName[256];
   DWORD    dwMaxComSize;
   DWORD    dwFlags;
   TCHAR    szFS[256];
   BOOL     bRes;

   errmode = SetErrorMode ( SEM_FAILCRITICALERRORS );
//если не сделать SetErrorMode - выскочит стандартное окошко "Drive Not Ready"

   bRes = GetVolumeInformation ( lpszDrive,
                                 szVolName,
                                 sizeof(szVolName),
                                 NULL, &dwMaxComSize,
                                 &dwFlags,
                                 szFS, sizeof(szFS) );
   SetErrorMode ( errmode );
   return bRes;
}

Эта технология также работает с CDROM и другими сменными устройствами.