在编辑某些程序时,为什么编译时好用,而直接执行exe文件时却没有效果呢? (20分)

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

hhb1981

Unregistered / Unconfirmed
GUEST, unregistred user!
比如像开光驱门的语句:
procedure TButton1.OnClick(Sender: TObject);
var
ReturnString: PChar;
begin
ReturnString := '驱动器打开错误';
MCISendString('set CDAudio do
or open', ReturnString, 127, 0);
//在MMSystem单元里[/b]
end;
在Delphi5中F9执行时,可以做到;但直接执行编译后生成的*.exe文件时一点反应也没有.
请大虾们多多指点!
 
奇怪~~~~~~~~~~~~不可能。
 
建议换一种方法试试。
 
我已经在三台机器上作了测试,结果都是如我所说的那样!真没办法!
请问 bigroom 先生(小姐),其他方法是什么呢? 请不吝赐教!小生不胜感激!
 
指针的问题, 用下面的办法就可以了
procedure TForm1.Button2Click(Sender: TObject);
var
ReturnString: array[0..255] of Char;
begin
ReturnString := '驱动器打开错误';
MCISendString('set CDAudio do
or open', ReturnString, 127, 0);
//在MMSystem单元里[/b]
end;
 
可以用下面的语句来开/关光驱:
mcisendcommand(mediaplayer1.deviceid,mci_set,mci_set_door_closed,1);
 
不好意思,刚才那句是关光驱的
 
建议用:
mciSendString('Set cdaudio do
or open wait', nil, 0, handle);
mciSendString('Set cdaudio do
or closed wait', nil, 0, handle);
uses mmsystem;
绝对有用。
 
楼上的办法的确好,再问一下,如果我装了两个光驱,能不能进行控制呢?
 
多谢vine的指点,但是 handle 需要引用 Forms 才行,有没有其他办法呢?
请赐教!
 
只要引用 Forms ,生成的exe文件就太大了,受不了啊!
 
多人接受答案了。
 
后退
顶部