Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Открытие/закрытие CD-ROM'a 
:(
    Опции темы
THandle
Дата 5.2.2008, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Вот решил добавить эту темку в FAQ, так как сегодня этим вопросом меня опять разозлил мой друг.

Вот собственно код:

Код

uses MMSystem;

...

mciSendString('Set cdaudio Door Open Wait', nil, 0, handle); //открытие CD-ROM'a
mciSendString('Set cdaudio Door Closed Wait', nil, 0, handle);//закрытие CD-ROM'a

PM   Вверх
SneG0K
Дата 5.2.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 3
Всего: 54



Иногда бывает полезо... Особенно как я над мамой прикалывался с сд-ромом smile да и с компом... эх.. Люблю я над кем нибьлт поприкалываться smile 
PM WWW Skype   Вверх
Elfebet
Дата 6.2.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: нет
Всего: 14



Боян, этот код был известен мне еще 5 лет назад


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
THandle
Дата 6.2.2008, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Elfebet, я полностью согласен что это боян, но у новичков этот вопрос пользуется довольно большой популярностью.
PM   Вверх
Kanes
Дата 6.2.2008, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 11.3.2005

Репутация: нет
Всего: нет



Развернутый пример: (с) DRKB
Код

// DriveTools 1.0                                                               * 
//                 (c) 1999 Jan Peter Stotz                                     * 
// If you find bugs, has ideas for missing featurs, feel free to contact me     * 
//                           [email protected]                                     * 
// Date last modified:   May 22, 1999                                           * 

unit DriveTools; 

interface 

uses 

  Windows, SysUtils, MMSystem; 

function CloseCD(Drive: Char): Boolean; 
function OpenCD(Drive: Char): Boolean; 

implementation 

function OpenCD(Drive: Char): Boolean; 
var 

  Res: MciError; 
  OpenParm: TMCI_Open_Parms; 
  Flags: DWord; 
  S: string; 
  DeviceID: Word; 
begin 

  Result := false; 
  S := Drive + ':'; 
  Flags := mci_Open_Type or mci_Open_Element; 
  with OpenParm do 
  begin 
    dwCallback := 0; 
    lpstrDeviceType := 'CDAudio'; 
    lpstrElementName := PChar(S); 
  end; 
  Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm)); 
  if Res <> 0 then 
    exit; 
  DeviceID := OpenParm.wDeviceID; 
  try 
    Res := mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0); 
    if Res = 0 then 
      exit; 
    Result := True; 
  finally 
    mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm)); 
  end; 
end; 

function CloseCD(Drive: Char): Boolean; 
var 

  Res: MciError; 
  OpenParm: TMCI_Open_Parms; 
  Flags: DWord; 
  S: string; 
  DeviceID: Word; 
begin 

  Result := false; 
  S := Drive + ':'; 
  Flags := mci_Open_Type or mci_Open_Element; 
  with OpenParm do 
  begin 
    dwCallback := 0; 
    lpstrDeviceType := 'CDAudio'; 
    lpstrElementName := PChar(S); 
  end; 
  Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm)); 
  if Res <> 0 then 
    exit; 
  DeviceID := OpenParm.wDeviceID; 
  try 
    Res := mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0); 
    if Res = 0 then 
      exit; 
    Result := True; 
  finally 
    mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm)); 
  end; 
end; 

end.

--------------------
Big gun - big future  
PM MAIL   Вверх
volvo877
Дата 6.2.2008, 13:44 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 9
Всего: 116



Угу... Давайте теперь весь FAQ по второму разу продублируем? 
http://forum.vingrad.ru/faq/topic-156750.html
PM MAIL   Вверх
THandle
Дата 6.2.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Эта тема создана специально в FAQ для начинающих, специально в кратком виде дан код. Это нужно именно для новичков, так как с тем развернутым примером не каждый сможет разобраться. Все это конечно ИМХО.
PM   Вверх
Kanes
Дата 6.2.2008, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 11.3.2005

Репутация: нет
Всего: нет



volvo877, хм, а в Фак я и не посмотрел smile 


THandle, просто я помню года 3 назад сам сталкивался с этим вопросом и без развернутого примера, зная только эти две функции, ничего толком сделать не смог.
--------------------
Big gun - big future  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1082 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.