Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как определить 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо