Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Внизсостояние лотка у 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c