Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.49 MB
Время: 0.038 c
3-1095154543
Николай
2004-09-14 13:35
2004.10.10
добавить фиктивную строку в DBGrid


1-1095951437
kiuv
2004-09-23 18:57
2004.10.10
Ошибка функции inifiles.readstring - как исправить


1-1096012898
AndrewH
2004-09-24 12:01
2004.10.10
Компонент для Crystal Reports 10


4-1094532736
Duka
2004-09-07 08:52
2004.10.10
USB


3-1094817179
mouse_web
2004-09-10 15:52
2004.10.10
Компонент соединения с базой Firebird





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский