Вниз
Скачать: CL | DM;

состояние лотка у CD   Найти похожие ветки 

← →
ASd   (2004-07-30 20:33) [0]

Как определить состояние лотка у CD т.е. открат или закрыт


← →
Кириешки ©   (2004-07-30 20:42) [1]

Uses MMSystem.

это для мозгов
{mciSendString("Set cdaudio Door Open Wait", nil, 0, handle);
mciSendCommand(mp.DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED,0);}

Для закрытия CD-ROMа:
mciSendString("Set cdaudio door closed wait", nil, 0, handle);
Для открытия CD-ROMа:
mciSendString("Set cdaudio door open wait", nil, 0, handle);


← →
ASd   (2004-07-30 20:45) [2]

Читай внимательнее! не отрыть и закрыть а определить всунут или высунут!!!!


← →
Кириешки ©   (2004-07-30 20:56) [3]

>ASd   (30.07.04 20:45) [2]

Орать не надо. If mciSendCommand(mp.DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED,0) then
Ну или что-то в этом духе. Мозги есть? Додумай сам.


← →
michael   (2004-08-02 14:58) [4]

If mciSendCommand(mp.DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED,0) then
Это работать врят-ли будет.


← →
grom   (2004-08-02 18:41) [5]

определить состояние лотка у CD
если на лотке есть диск = if GetVolumeInformation()then ...
если на лотке нет диска никак скорей всего.


← →
KSergey ©   (2004-08-02 18:58) [6]

> ASd   (30.07.04 20:33)  

Ответ "НЕЛЬЗЯ!" есть во всех FAQ, в том числе и на этом сайте (во всяком случае в некогда обсуждаемом)


← →
[lamer]Barmaglot ©   (2004-08-03 17:32) [7]

то KSergey ©   (02.08.04 18:58) [6]

Можно, но под НТ... Пример был на этом сайте...Некоторые говорят что у них и под 98 работает, незнаю врать не буду...


← →
OSokin ©   (2004-08-31 20:15) [8]

Чтобы проверить, находится ли диск в приводе, нужно использовать функцию "GetDiskFreeSpace(pchar(disk+":\"),a,a,a,a);", где "disk" - это название диска, а "a" - переменная типа cardinal. Если функция возвращает false, то диска в приводе нет.


← →
GuAV ©   (2004-08-31 21:14) [9]


> то диска в приводе нет.

не сюда, надо

> определить всунут или высунут!!!!


← →
Anatoly Podgoretsky ©   (2004-08-31 21:44) [10]

Для начала не мешало бы опрелеоить - а есть ли дверца (лоток)?


← →
GuAV ©   (2004-08-31 21:55) [11]


> Для начала не мешало бы опрелеоить - а есть ли дверца (лоток)?

У "виртуального" нет и его можно и всунуть и выунуть. Так что проверять наличие не обязательно.


← →
Anatoly Podgoretsky ©   (2004-08-31 22:04) [12]

Про физические говорю


← →
OSokin ©   (2004-09-01 20:00) [13]

GuAV ©   (31.08.04 21:14) [9]
Но ведь работает!


← →
GuAV ©   (2004-09-01 22:47) [14]


> Но ведь работает!

А таки да. Дело в том, что

> открат или закрыт

и
> всунут или высунут!!!!

разнеые вопросы.
открат или закрыт - см Anatoly Podgoretsky ©   (31.08.04 21:44) [10]
всунут или высунут - см OSokin ©   (31.08.04 20:15) [8]


← →
TeNY ©   (2004-09-06 11:05) [15]

И всё же как?


← →
Rouse_ ©   (2004-09-06 11:53) [16]

Давно было обсуждени и в прошлый раз остановились на следующем.
При старте программы посылать команду закрытия лотка и после отлавливать его открытие - закрытие следующим кодом:

procedure CD(var Msg: TMessage); message WM_DEVICECHANGE;

...

procedure TForm1.CD(var Msg: TMessage);
begin
 case Msg.WParam of
   32772: Caption := "Open";
   32768: Caption := "Close";
 else
   Caption := "Unknown";
 end;
end;


← →
DVM ©   (2004-09-06 21:57) [17]


> Rouse_ ©   (06.09.04 11:53) [16]

Да, точно, похоже это единственный правильный способ. (если удалось задвинуть)

Хотя точно знаю, что можно определить через Adaptec ASPI. Я там в какой то структуре видел поле за состояние лотка отвечающее.


← →
Rouse_ ©   (2004-09-07 09:24) [18]

> Хотя точно знаю, что можно определить через Adaptec ASPI.
Нууу это спорный вопрос. Не уверен что сидиром сам знает в каком состоянии у него лоток :) (В смысле чтобы оповестить об этом внешнее приложение или драйвер). По крайней мере AFAIK часть моделей этого точно сделать не в состоянии :) Кто-то приводил тут примеры...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.032 c
1-1096115569
Dmy
2004-09-25 16:32
2004.10.10
PopupMenu + иконка в трее — не закрывается нормально...


4-1094743108
Sur
2004-09-09 19:18
2004.10.10
clipboard


3-1095140839
snake1977
2004-09-14 09:47
2004.10.10
Добавление большого количества записей


3-1094748738
Vigo
2004-09-09 20:52
2004.10.10
Вопрос по работе с таблицами БД через TClientDataSet


6-1091384596
Роман.В
2004-08-01 22:23
2004.10.10
Аутентификация в TNMSMTP




   Наверх