IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Как узнать, открыта ли дверца Cd-rom?
CMOS
сообщение 7.07.2005 21:11
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


Как узнать, открыта ли дверца CD-ROM?
Как узнать сирийный номер диска?
Как открыть/закрыть дверцу? Я знаю такой спсоб:

MciSendString('Set cdaudio door closed', 0,0,form1.handle);

MciSendString('Set cdaudio door open', 0,0,form1.handle);


Можно ли как-нибудь еще?
Какие еще значения первого параметра в функции MciSendString существуют?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.07.2005 21:19
Сообщение #2


Гость






Цитата(CMOS @ 7.07.05 21:11)
Какие еще значения первого параметра в функции MciSendString существуют?

Вот список только по первому слову:
Цитата
break
capability
capture
close
configure
copy
cue
cut
delete
escape
freeze
index
info
list
load
mark
monitor
open
paste
pause
play
put
quality
realize
record
reserve
restore
resume
save
seek
set
setaudio
settimecode
settuner
setvideo
signal
spin
status
step
stop
sysinfo
undo
unfreeze
update
where
window

MSDN: Multimedia Command Strings, если хочешь точнее...
 К началу страницы 
+ Ответить 
corazon
сообщение 14.07.2005 17:46
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 54
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


а можно ли встроить свою опцию в контекстное меню? например у сидюка есть "открыть" (извлечь), а добавить свою "закрыть" ??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
CMOS
сообщение 16.07.2005 21:57
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


Volvo, спасибо за подсказку. smile.gif Я и не знал что это есть в MSDN.

corazon, я не понял что ты предлагаешь. Создать новый метод? Все равно придется выходить на winmm.dll.


Повторяю главные вопросы:

Как узнать, открыта ли дверца CD-ROM?
Как узнать сирийный номер диска?

Сообщение отредактировано: CMOS - 16.07.2005 21:59
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.07.2005 11:23
Сообщение #5


Гость






Вот как узнать серийный номер диска: http://proging.h1.ru/articles/system/s23.htm

Насчет
Цитата
узнать, открыта ли дверца CD-ROM
- не думаю, что это возможно.

Хотя попробуй воспользоваться
DeviceIoControl( CD_Handle, IOCTL_SCSI_PASS_THROUGH_DIRECT, ...);
, может что-нибудь и получится... ;)
 К началу страницы 
+ Ответить 
CMOS
сообщение 24.07.2005 21:01
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


Невозможно?
А как же тогда Nero DriveSpeed? Да даже стандартный виндозовский лазерный проигрыватель (даже из Win 3.1) когда дверца закрыта - открывает, когда открыта - закрывает. Как он это делает?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.07.2005 21:19
Сообщение #7


Гость






CMOS, ты бы с Nero не равнялся (с MicroSoft тем более)... Кроме того, не надо читать ответы через строчку, я сказал, куда надо копать. Пробовал?
 К началу страницы 
+ Ответить 
Archon
сообщение 24.07.2005 23:46
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Открывать-закрывать дверцу ты умеешь. Что ещё надо? Если тебе нужно, чтобы дверца была открыта - открываешь (если уже открыта - просто ничего не произойдёт). И наоборот.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 25.07.2005 10:34
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(CMOS @ 24.07.05 21:01)
Да даже стандартный виндозовский лазерный проигрыватель (даже из Win 3.1) когда дверца закрыта - открывает, когда открыта - закрывает. Как он это делает?

Сейчас посмотрел в CDPlayer.exe из win98. При нажатии на Eject там примерно так:
Код
if mciSendCommandA ( MCI_STATUS, MCi_Status_Item)=$212 then
mciSendCommandA ( MCI_SET, MCI_SET_DOOR_CLOSED) else
mciSendCommandA ( MCI_SET, MCI_SET_DOOR_OPEN);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
CMOS
сообщение 13.08.2005 21:00
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


Цитата
CMOS, ты бы с Nero не равнялся (с MicroSoft тем более)


volvo, не боги горшки обжигают.
Насчет DeviceIoControl - там слишком много параметров. Откуда мне их знать?Должен быть путь проще.

Malice, ты забыл еще два параметра в этих функциях. Пробовал ставить их нулями. Обе эти функции вернули $101 (257) в не зависимости от состояния сидюка.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.08.2005 21:21
Сообщение #11


Гость






Цитата(CMOS @ 13.08.05 21:00)
Насчет DeviceIoControl - там слишком много параметров. Откуда мне их знать? Должен быть путь проще.

angry.gif Специально для CMOS MicroSoft забыла оставить более простой способ определения закрытости дверцы !!! Срочно обращайся в Гаагу !!!

Цитата(CMOS @ 13.08.05 21:00)
Откуда мне их знать?
Откуда знать?
msdn.microsoft.com - или "не царское это дело"?

Если найдешь функцию WinAPI без параметров, которая проверяет открыт ли лоток, сообщи обязательно.
 К началу страницы 
+ Ответить 
Malice
сообщение 14.08.2005 16:45
Сообщение #12


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(CMOS @ 13.08.05 21:00)
Malice, ты забыл еще два параметра в этих функциях.
Я не зыбыл, я же не в исходниках смотрел smile.gif Написал принцип.

Цитата(CMOS @ 13.08.05 21:00)
Пробовал ставить их нулями. Обе эти функции вернули $101 (257) в не зависимости от состояния сидюка.

У меня CDPlayer выдвигает дверь только если там диск есть, иначе не хочет. Мож у тебя тоже самое. Ты сам на него кивнул, я сказал как там сделано, разбирайся smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 29.04.2024 5:00
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"