![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проверит, открыт ли лоток CD-ROM? [D7, WinXP]
Nik_vr © (2005-05-18 23:08:00)Собственно сабж...
n0name (2005-08-08 21:08:00) [1]Могу добавить что это происходить через интерфейс RSM. Для вызова вышеуказанной функции надо получить GUID этого устройства. Его, как я полагаю можно узнать вызвав IOCTL_DISK_GET_DRIVE_LAYOUT_EX.
КодеКорешь (2005-08-08 18:45:00) [2]Есть такая функция GetNtmsObjectInformation далее смотреть следующие структуры NTMS_OBJECTINFORMATION NTMS_IEDOORINFORMATION
typedef struct _NTMS_IEDOORINFORMATION {
WORD Number;
WORD State;
WORD MaxOpenSecs;
NTMS_GUID Library;
} NTMS_IEDOORINFORMATION;
State - State of the door. This can be one of the following values.
Это все это к сожалению в делфи не портировано, так что ручками...
DVM (2005-06-22 11:53:00) [3]
> как ты будешь отслеживать движение лотка, иначе бы и проблемы
> не было.
Там какое-то сообщение можно получать.
Anatoly Podgoretsky (2005-06-22 11:02:00) [4]DVM © (22.06.05 10:44) [25]
Не выйдет, как ты будешь отслеживать движение лотка, иначе бы и проблемы не было.
DVM (2005-06-22 10:44:00) [5]Никак не проверить, сколько раз говорено! Можно только попытаться при старте сразу его закрыть и считать потом закрытым. Далее отслеживать движения лотка.
MS-MEN (2005-06-21 23:54:00) [6]Можно.
1) Выбрать диск обратится к портам 0/I и получить все что хотел.
2) Прочитать CD с помощью CreateFile и проверить что есть сигнал
3) Открыть а затем прочитать диск если ошибка другая то все ok.
Но самый лучши вариянт это первый.
Nik_vr (2005-06-21 18:59:00) [7]Удалено модератором
Nik_vr (2005-06-21 18:59:00) [8]2OSokin:
Мне тожу думается, что возможно...
2Digitman
Да мне просто лень тянуться под стол :)
Digitman (2005-06-21 17:45:00) [9]поелозить лотком у юзера в самый неожиданный для него момент - это верх остроумия
OSokin (2005-06-21 17:38:00) [10]Люди, а ведь это возможно! Смотрите RapidCache у VirtualDrive!
Anatoly Podgoretsky (2005-05-21 20:20:00) [11]Nik_vr © (21.05.05 19:45) [18]
Ошибка в программе
Nik_vr (2005-05-21 19:45:00) [12]Это все я так сделал. Проблема вот в чем: если мою программу запустили в том момент когда лоток открыть, то я не могу закрыть его нормально...
2Eraser
Пошутить я и сам люблю...
Anatoly Podgoretsky (2005-05-21 13:48:00) [13]Nik_vr © (21.05.05 13:41) [14]
Просто!
Закрой один раз и State := Closed
Eraser (2005-05-21 13:46:00) [14]Удалено модератором
Eraser (2005-05-21 13:46:00) [15]Удалено модератором
Nik_vr (2005-05-21 13:41:00) [16]2Eraser & Anatoly Podgoretsky
А подробнее можно?
Anatoly Podgoretsky (2005-05-20 23:14:00) [17]Синхронизация.
Eraser (2005-05-20 23:11:00) [18]Nik_vr © (20.05.05 22:23) [11]
С пом. операторов условия.
Nik_vr (2005-05-20 22:23:00) [19]Ну невозможно, так невозможно... А как тогда открыть/закрыть лоток одной кнопкой (если открыт-закрыть и наоборот)? Ведь делают же люди!
DVM (2005-05-20 17:01:00) [20]ЭТО НЕВОЗМОЖНО, СТО РАЗ ГОВОРЕНО!