Добрый день.
Люди, подскажите, пожалуйста, как проверить, вставлен ли какой-нибудь диска в CD-ROM.
Сейчас я пытаюсь читать файл с CD и проверяю код возврата. Но если диска нет, выбрасывается системное сообщение
("Вставьте диск..." — под XP, по крайней мере).
Можно ли как-то проверить, вставлен ли диск, не читая с него никакой информации (чтобы не выскакивало это окошко)?
Андрей.
Здравствуйте, AndrejKosandry, Вы писали:
[]
AK>Можно ли как-то проверить, вставлен ли диск, не читая с него никакой информации (чтобы не выскакивало это окошко)?
SetErrorMode(SEM_FAILCRITICALERRORS) — и окошко не будет показываться
Здравствуйте, AndrejKosandry, Вы писали:
HANDLE device = CreateFile ("\\\\.\\your_cd_drive_letter:", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (device != INVALID_HANDLE_VALUE)
{
DWORD bytes_returned = 0;
BOOL res = DeviceIoControl(device, IOCTL_STORAGE_CHECK_VERIFY, NULL, 0, NULL, 0, &bytes_returned, NULL);
if (res)
{
/* Диск наличествует. */
}
CloseHandle(device);
}
ЗЫ Для NT+