Форум: "Система";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Система";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c