Форум: "WinAPI";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Внизкак определить cd-romы и выгрузить лоток у выбранного CD Найти похожие ветки
← →
GraY © (2004-07-25 14:25) [0]как определить cd-romы и выгрузить лоток у выбранного CD
← →
ssk © (2004-07-25 14:35) [1]Накопители 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;
← →
GraY © (2004-07-25 15:18) [2]TMCI_Open_Parm к какому юниту относятся?MMSystem не катит!
← →
ssk © (2004-07-25 15:37) [3]к нему и относятся -> MMSystem
http://www.ucad.pisem.net/sskcdrom.zip
← →
GraY © (2004-07-25 16:17) [4]бОЛЬШОЕ СПАСИБО SSk,А КАК УПРАВЛЯТЬ СКОРОСТЬЮ cd ЗНАЕШ?ИЛИ ГДЕ ИНФУ ПОЧИТАТЬ МОЖНО?
← →
ssk © (2004-07-25 16:50) [5]не знаю. этим не занимался.
← →
grom (2004-07-25 18:13) [6]А можно вот так
....................
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;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c