![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как определить cd-romы и выгрузить лоток у выбранного CD [D1, D2, D3, D4, D5, D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]
GraY © (2004-07-25 14:25:00)как определить cd-romы и выгрузить лоток у выбранного CD
grom (2004-07-25 18:13:00) [1]А можно вот так
....................
function Open_CloseCD(Drive:string;i:integer):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 if i=1 then Result:=mciSendCommand(DeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0)= 0;
if i=2 then Result:=mciSendCommand(DeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0)= 0;
finally mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;
.................
Open_CloseCD('D',1);
----
Open_CloseCD('D',2);
...............
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=65 to 90 do if GetDriveType(PChar(chr(i)+':\'))=DRIVE_CDROM then begin
ComboBox1.Items.Add(chr(i));
end;
ComboBox1.ItemIndex:=0;
end;
ssk (2004-07-25 16:50:00) [2]не знаю. этим не занимался.
GraY (2004-07-25 16:17:00) [3]бОЛЬШОЕ СПАСИБО SSk,А КАК УПРАВЛЯТЬ СКОРОСТЬЮ cd ЗНАЕШ?ИЛИ ГДЕ ИНФУ ПОЧИТАТЬ МОЖНО?
ssk (2004-07-25 15:37:00) [4]к нему и относятся -> MMSystem
http://www.ucad.pisem.net/sskcdrom.zip
GraY (2004-07-25 15:18:00) [5]TMCI_Open_Parm к какому юниту относятся?MMSystem не катит!
ssk (2004-07-25 14:35:00) [6]Накопители CD-ROM
function CDList : string;
var
Drives, Loop : integer;
Work : string;
begin
Drives:=GetLogicalDrives;
Result:='';
for Loop:=0 to 25 do
if ((1 shl Loop) and Drives)<>0 then
begin
Work:=Char(65+Loop)+':\';
if GetDriveType(PChar(Work))=DRIVE_CDROM then
Result:=Result+Char(65+Loop);
end;
end;
Открыть-Закрыть CDROM с определенной буквой
function OpenCD(Drive : Char) : Boolean;
Var
Err : MciError;
OpenParm: TMCI_Open_Parms;
Flags : DWord;
S : String;
DeviceID : Word;
begin
Result:=false;
S:=Drive+':';
Flags:=mci_Open_Type or mci_Open_Element; // См. mci_Open
With OpenParm do
begin
dwCallback := 0;
lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(S);
end;
Err := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
IF Err<>0 Then exit;
DeviceID:=OpenParm.wDeviceID;
try
Err:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
IF Err=0 Then exit;
Result:=True;
finally
begin
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
Result:=True;
end;
end;
end;
function CloseCD(Drive : Char) : Boolean;
Var
Err : 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;
Err := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
IF Err<>0 Then exit;
DeviceID:=OpenParm.wDeviceID;
try
Err:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
IF Err=0 Then exit;
Result:=True;
finally
mciSendCommand(DeviceID, MCI_CLOSE, Flags, Longint(@OpenParm));
end;
end;