同一机器二个以上光驱,已用程序找出其盘符,如何分别控制其开关?(100分)

  • 主题发起人 主题发起人 Caicheng
  • 开始时间 开始时间
C

Caicheng

Unregistered / Unconfirmed
GUEST, unregistred user!
如题。急急。
 
什么控制其开关,是弹入弹出吗?
 
目前此问题已经解决,只是无法获知其当前状态。状态是指是在弹出状态还是在关闭状态。
 
我也想知道是弹出还是关闭的状态,我也提类似的问题,但没得到答案,谁给正确答案,我也
给分
 
顺便告诉我,谢谢!
 
Caicheng:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
let me know too!
 
那如果是光盘塔呢,是如何解决的呢??
 
我也想知道怎样才能知道光驱现在是开着还是关着。
 
我来将问题提前
 
这个问题有没有人知道啊?
 
function OpenCd(handle: HWND;
drive: String): 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;
With OpenParmdo
begin

dwCallback := 0;
lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(S);
end;

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(handle: HWND;
drive: String): 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;
With OpenParmdo
begin

dwCallback := 0;
lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(S);
end;

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;
 
to richer
你的代码我见过,只能弹出光驱,并不能获得光驱的状态啊。
 
function CdInDriver(ADriverPath: String): Boolean;
var
attr: DWORD;
begin

attr := GetFileAttributes(PChar(ADriverPath));
if (attr and FILE_ATTRIBUTE_OFFLINE) <> 0 then

Result := False
else

Result := True;
end;

 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部