48. FAQ o Win API

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

A>
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 и другими сменными устройствами.

2000(c) DM

Электронные Книги по компьютерным программам
На правах рекламы:
Логин
Пароль
Запомнить меня