![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Открытие и закрытие дисковода [D7]
VVR © (2007-04-27 00:17:00)Помогите!!!!!!!!!!!!!
Как открыть и закрыть дисковод по нажатию кнопки?
Novice (2007-04-28 09:22:00) [1]вот:
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.
(c) DelphiWorld - и вопросов будет меньше.
{RASkov} (2007-04-27 19:54:00) [2]> [9] Anatoly Podgoretsky © (27.04.07 19:44)
:)
Тут вон в [6] выдвинули версию, что друг автора там застрял, диск это мелоч....
Anatoly Podgoretsky (2007-04-27 19:44:00) [3]> {RASkov} (27.04.2007 01:24:03) [3]
Он там диск оставил.
--
zdm (2007-04-27 14:46:00) [4]
> clickmaker © (27.04.07 12:14) [6]
Супер ;))))
Asail (2007-04-27 14:02:00) [5]
> Как открыть и закрыть дисковод по нажатию кнопки?
1. Нажать на кнопку - открыть дисковод.
2. Нажать на кнопку - закрыть дисковод.
clickmaker (2007-04-27 12:14:00) [6]
> Помогите!!!!!!!!!!!!!
количество воскл. знаков наводит на мысль, что кто-то в этом самом дисководе застрял...
homm (2007-04-27 11:50:00) [7]> Как открыть и закрыть дисковод по нажатию кнопки?
«Нейропрограммированием швейцара»
© не помню чей, но очень понравилось :)
Desdechado (2007-04-27 11:19:00) [8]Традиционный вопрос:
А если дисковод без кнопки и лотка, просто щель? Что ты там собираешься открывать?
{RASkov} (2007-04-27 01:24:00) [9]> [2] Джо © (27.04.07 01:15)
> А что же, в Маках именно такие дисководы
Не думаю, что VVR пишет прогу для Мака на D7 ;)
И вообще.... может он купил новый CD-ROM, а питание не пристегнул, вот и не может - ни открыть, ни закрыть его :)
А D7 - на всякий случай указал, увидал в другой ветке...
Джо (2007-04-27 01:15:00) [10]> [1] {RASkov} © (27.04.07 00:33)
> Дисковод 3,5"?
А что же, в Маках именно такие дисководы и были раньше (сейчас не знаю). И в нек. других машинах, вроде.
{RASkov} (2007-04-27 00:33:00) [11]Дисковод 3,5"?
Кнопку на приводе нажимать?
Если все не так - то может это:
mciSendString('Set cdaudio door open wait', nil, 0, handle);
mciSendString('Set cdaudio door closed wait', nil, 0, handle);
соответственно: "открыть" и "закрыть" CD-ROM....
в uses MMSystem.