Вниз
Скачать: CL | DM;

CD-ROM   Найти похожие ветки 

 
Rolf ©   (2003-07-09 21:44) [0]

Уважаемые мастера! Вот я написал что-бы прога открывала и закрывала CD-ROM. А у меня есть ещё и резак.Как тут быт, чтобы и его открывать?


 
Е-Моё имя ©   (2003-07-10 09:55) [1]

букву в проге поменяй))))


 
begemot ©   (2003-07-11 15:20) [2]

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;

OpenParm.dwCallback:= 0;
OpenParm.lpstrDeviceType:= "CDAudio";
OpenParm.lpstrElementName:= PChar(S);

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;

OpenParm.dwCallback:= 0;
OpenParm.lpstrDeviceType:= "CDAudio";
OpenParm.lpstrElementName:= PChar(S);

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;

function DMSecBetweenTime(const AOld,ANow: TDateTime): Int64;
var // Result правильный если две даты принадлежат 24ч
ABetween: TDateTime;
H,M,S,MS: Word;
begin
Result:= -1;
if (AOld > 1) or (ANow > 1) then //AOld and ANow only Time
Exit;
if AOld > ANow then
ABetween:= 1+ANow-AOld
else
ABetween:= ANow-AOld;
DecodeTime(ABetween,H,M,S,MS);

Result:= MS+(S*1000)+(M*60*1000)+(H*60*60*1000)
end;

procedure btEjClClick(Drive: Char); //Drive<D,E(Одна буква)
var
OldTime : TDateTime;
BWMSt : Int64;
begin

OldTime:= Time;
CloseCD(Drive);
BWMSt:= DMSecBetweenTime(OldTime,Time);

if BWMSt < 1000 then //При закрытом лотке
( NameDrive) 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;

OpenParm.dwCallback:= 0;
OpenParm.lpstrDeviceType:= "CDAudio";
OpenParm.lpstrElementName:= PChar(S);

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;

OpenParm.dwCallback:= 0;
OpenParm.lpstrDeviceType:= "CDAudio";
OpenParm.lpstrElementName:= PChar(S);

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;

function DMSecBetweenTime(const AOld,ANow: TDateTime): Int64;
var // Result правильный если две даты принадлежат 24ч
ABetween: TDateTime;
H,M,S,MS: Word;
begin
Result:= -1;
if (AOld > 1) or (ANow > 1) then //AOld and ANow only Time
Exit;
if AOld > ANow then
ABetween:= 1+ANow-AOld
else
ABetween:= ANow-AOld;
DecodeTime(ABetween,H,M,S,MS);

Result:= MS+(S*1000)+(M*60*1000)+(H*60*60*1000)
end;

procedure btEjClClick(Drive: Char); //Drive<D,E(Одна буква)
var
OldTime : TDateTime;
BWMSt : Int64;
begin

OldTime:= Time;
CloseCD(Drive);
BWMSt:= DMSecBetweenTime(OldTime,Time);

if BWMSt < 1000 then //При закрытом лотке
OpenCD(NameDrive);


end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.014 c
4-72009
_smile
2003-07-21 13:59
2003.09.22
Использование accelerator tables


14-71887
uw
2003-08-29 11:19
2003.09.22
---|Ветка была без названия|---


1-71716
Kremen
2003-09-10 16:40
2003.09.22
Есть ли функция или оператор для сложения по модулю 2? Подскажите


1-71595
Dred2k
2003-09-10 21:21
2003.09.22
Ошибка при ClientDataSet.Open - Член группы не найден


1-71714
alpine
2003-09-09 20:19
2003.09.22
Как сохранить HTML загруженную с помощью TWebBrowser ?




   Наверх