![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CD-ROM [D6, WinXP]
ArthurKhamitov © (2004-05-11 18:23:00)Как программно (через Delphi) закрыть CD-дисковод?
grom2 (2004-05-14 09:48:00) [1]apihelp (13.05.04 16:43) [7]
С помощью mcisendString('Set cdaudio door open wait', nil, 0, handle) можно открыть только один привод который в системе стоит первым. А если на компе стоит 2 или 3 привода.
С помощью function OpenCD(Drive:string):Boolean; открывается любой привод
apihelp (2004-05-13 16:43:00) [2]>grom2 (13.05.04 12:16) [5]
Ниструя себе
в Uses в обяз добавить "mmsystem"
Открыть
procedure TForm1.Button1Click(Sender: TObject);
begin
mcisendString('Set cdaudio door open wait', nil, 0, handle);
end;
Закрыть
procedure TForm1.Button2Click(Sender: TObject);
begin
mciSendString('Set cdaudio door closed wait', nil, 0, handle);
end;
Nebiyev (2004-05-13 16:21:00) [3]Мы пробовали MCISendString, но делфи не признал этого. что нам надо написать в uses?
grom2 (2004-05-13 12:16:00) [4]
//vvvvvvvvvvvvvvvvvvvvvvvvv/ Open CD / Close CD /vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
function OpenCD(Drive:string):Boolean;
var
Res : MciError;
OpenParm: TMCI_Open_Parms;
Flags,DeviceID : Word;
begin
Result:=false;
Flags:=mci_Open_Type or mci_Open_Element;
with OpenParm do begin
dwCallback := 0;
lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(Drive+':');
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:string):Boolean;
var
Res : MciError;
OpenParm: TMCI_Open_Parms;
Flags,DeviceID : Word;
begin
Result:=false;
Flags:=mci_Open_Type or mci_Open_Element;
with OpenParm do begin
dwCallback := 0;
lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(Drive+':');
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;
Dimich1978 (2004-05-11 19:44:00) [5]А если слово "closed" поменять на "access denied", то сидюк повесится на шнуре питания, если вовремя успеть то откачать еше будет можно путем искусственного дыхания и клизмой :))))))
Agent13 (2004-05-11 19:21:00) [6]А если слово "closed" поменять на "open", то сидюк откроется :)
Agent13 (2004-05-11 19:20:00) [7]Да, действительно в MMsystem:
MCISendString('Set CDAudio door closed wait', nil, 0, Form1.Handle);
IceBeerg (2004-05-11 18:26:00) [8]Поищи в mmsystem.pas... Должна быть функция которая и открывает и закрывает.