Проверка наличия диска в CD-ROM
От: AndrejKosandry  
Дата: 23.04.03 09:20
Оценка:
Добрый день.

Люди, подскажите, пожалуйста, как проверить, вставлен ли какой-нибудь диска в CD-ROM.

Сейчас я пытаюсь читать файл с CD и проверяю код возврата. Но если диска нет, выбрасывается системное сообщение
("Вставьте диск..." — под XP, по крайней мере).

Можно ли как-то проверить, вставлен ли диск, не читая с него никакой информации (чтобы не выскакивало это окошко)?

Андрей.
Re: Проверка наличия диска в CD-ROM
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 23.04.03 09:31
Оценка:
Здравствуйте, AndrejKosandry, Вы писали:

[]
AK>Можно ли как-то проверить, вставлен ли диск, не читая с него никакой информации (чтобы не выскакивало это окошко)?

SetErrorMode(SEM_FAILCRITICALERRORS) — и окошко не будет показываться
Re: Проверка наличия диска в CD-ROM
От: Patalog Россия  
Дата: 23.04.03 09:47
Оценка: 13 (3)
Здравствуйте, 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+
Почетный кавалер ордена Совка.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.