如何检测modem是否有拨号音(100分)

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

halei

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中写好了mscomm1.Output:='ATDT'+string+#13;
但我想在执行这条命令前,先判断modem的电源是否打开,和是否有拨号音,再做出相关提示.
应该怎么做?
 
我不会,但提供 本论坛的资料,可以自己查...
以下摘自本 论坛....huangjiahan 发表...好像有错误,请自行检查...
procedure Tform1.dial(dialnum:String);
begin
comm1.writecommdata(pchar(dialnum), length(dialnum));
timer1.enabled := true;//有无应答定时器
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
dial(num1);//开始modem拨号
end;


procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
rstring:string;
begin
rstring := STRINGOFCHAR(' ', BUFFERLENGTH);
MOVE(BUFFER^, pchar(rstring)^, BUFFERLENGTH); //收串口字符;
if ansipos('NO DIALTONE', trim(rstring)) = 1 then
begin
Memo1.lines.add('没有拨号音。');
timer1.enabled := false;
exit;
end;
end;

奇怪的是,第一次拨号是好的,但如果碰上没有拨号音的时候,想第二次拨号就出现内存出错。真是不明白?
 
后退
顶部