Главная страница
    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.48 MB
Время: 0.037 c
4-1093597338
GanibalLector
2004-08-27 13:02
2004.10.10
как проверить жив ли поток???


1-1096024129
DimonNew
2004-09-24 15:08
2004.10.10
Clipboard+Word


6-1091108162
MetalFan
2004-07-29 17:36
2004.10.10
определить "свободные" UDP&TCP порты


3-1094639133
sf
2004-09-08 14:25
2004.10.10
Базы данных в сети


1-1095850986
bl4ck_w1nd
2004-09-22 15:03
2004.10.10
AsyncPro406 выдает ошибку





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский