如何获得CDROM的弹出与关闭事件???(10分)

T

tanminr

Unregistered / Unconfirmed
GUEST, unregistred user!
如何获得CDROM的弹出与关闭事件???
 
WHO ARE YOU ?
NO MEN OR WOMEN?
 
procedure WMDeviceChange(var Msg: TMsg);
message WM_DEVICECHANGE;
procedure TForm1.WMDeviceChange(var Msg: TMsg);
begin

if Msg.wParam = DBT_DEVICEREMOVEPENDING then
.
Msg.Result := True;
end;


 
begin

mciExecute('open cdaudio alias cd shareable ');
if EjectCD=true then

begin

mciExecute('set cddo
or open');
EjectCD:=false;
end
else

begin

mciExecute('set cddo
or closed');
EjectCD:=true;
end;

mciExecute('close cd');
end;
 
先谢两位兄弟,
请问两位兄弟,有没有可以运行的代码给我试一下啊!
拜托了!
 
DBT_DEVICEREMOVEPENDING 在哪个单元里有声明?我搜了一遍,没找不到!
 
是啊!找补到啊
 
电脑商情报上面有一篇
那鸟人检测多次
有个常数的
不过没找到
mmsystem.pas
 
{...}
type
TForm1 = class(TForm)
private
procedure WMDeviceChange(var Msg: TMessage);

message WM_DEVICECHANGE;

public

end;



{...}

implementation

{$R *.DFM}

procedure TForm1.WMDeviceChange (var Msg: TMessage);

const
CD_IN = $8000;

CD_OUT = $8004;

var
myMsg : String;

begin

inherited;

case Msg.wParam of
CD_IN : myMsg := 'CD 插入!';

CD_OUT : myMsg := 'CD 弹出!';

end;


ShowMessage(myMsg);

end;
 
To:jackalan
我实验过你的代码,好象没有什么效果啊!!
 
多人接受答案了。
 
顶部