怎样才能控制光驱的弹出和关闭?(50分)

  • 主题发起人 主题发起人 hxy2002
  • 开始时间 开始时间
H

hxy2002

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样才能控制光驱的弹出和关闭?
 
nzfboy拿出来的VB代码tseug转换成的Delphi的。
可以操作多个驱动器的。
uses mmSysTem;

procedure CDRomOpen(bOpenDrive: Boolean; cDrive: Char);
var
o: MCI_OPEN_PARMS;
status: MCI_STATUS_PARMS;
flags: DWord;
szDriveName: array[0..3] of Char;
begin
szDriveName := '?:';
ZeroMemory(@o, SizeOf(MCI_OPEN_PARMS));
szDriveName[0] := cDrive;

o.lpstrDeviceType := PChar(MCI_DEVTYPE_CD_AUDIO);
o.lpstrElementName := szDriveName;
flags := MCI_OPEN_TYPE or MCI_OPEN_TYPE_ID or MCI_OPEN_ELEMENT or MCI_OPEN_SHAREABLE;
if mciSendCommand(0, MCI_OPEN, flags, Cardinal(@o)) = 0 then
begin
status.dwItem := MCI_STATUS_READY;

if bOpenDrive then
mciSendCommand(o.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0)
else
mciSendCommand(o.wDeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);

mciSendCommand(o.wDeviceID, MCI_CLOSE, MCI_WAIT, 0);
end;
end;
 
[:(]来晚了
 
老问题啊!yahoo上找一下多的不得了
 
非常简单:
uses MMSystem;

procedure EjectCdrom(Open:Boolean);
begin
if Open then
MciSendString('Set CDAudio Door Open' ,NIL,0,0)
else
MciSendString('Set CDAudio Door Closed',NIL,0,0);
end;
 
多人接受答案了。
 
后退
顶部