Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как проверит, открыт ли лоток CD-ROM? [D7, WinXP]


Страницы:   1 2

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]

ЭТО НЕВОЗМОЖНО, СТО РАЗ ГОВОРЕНО!


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо