Вниз
Скачать: 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.017 c
1-71633
NET
2003-09-09 07:32
2003.09.22
Компиляция


1-71647
asJIura
2003-09-08 23:09
2003.09.22
Что я делаю не так с меню?


3-71536
a_andru
2003-08-24 19:44
2003.09.22
Oracle: Получение значений из запроса...


3-71533
Chery
2003-09-02 13:56
2003.09.22
Выдаёт ошибку в SQL при использов. ф-ции Max() с др. полями.


3-71543
analyser
2003-08-28 10:25
2003.09.22
ADOConnection и UDL - ошибка открытия, если сначала прочитать...




   Наверх