MODEM的信号灯变化产生的系统消息(50分)

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

coolblue

Unregistered / Unconfirmed
GUEST, unregistred user!
当MODEM的信号灯(RTS、CTS、DTR、DSR、DCD)发生变化(高-->低,低-->高)
时Windwos产生哪些系统消息?
 
没有消息,要轮询
 
没有消息,要轮询
 
是啊! 没有消息,必须查询MODEM的状态,用GetMODEMState还是Status什么的
,要么就是GetCommState...记不清楚了...
 
下面的例子演示如何检测modem的状态:

procedure TForm1.Button1Click(Sender: TObject);
var
CommPort : string;
hCommFile : THandle;
ModemStat : DWord;
begin
CommPort := 'COM2';

{Open the comm port}
hCommFile := CreateFile(PChar(CommPort),
GENERIC_READ,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if hCommFile = INVALID_HANDLE_VALUE then
begin
ShowMessage('Unable to open '+ CommPort);
exit;
end;

{Get the Modem Status}
if GetCommModemStatus(hCommFile, ModemStat) <> false then begin
if ModemStat and MS_CTS_ON <> 0 then
ShowMessage('The CTS (clear-to-send) is on.');
if ModemStat and MS_DSR_ON <> 0 then
ShowMessage('The DSR (data-set-ready) is on.');
if ModemStat and MS_RING_ON <> 0then
ShowMessage('The ring indicator is on.');
if ModemStat and MS_RLSD_ON <> 0 then
ShowMessage('The RLSD (receive-line-signal-detect) is
on.');
end;

{Close the comm port}
CloseHandle(hCommFile);
end;
 
以前有个程序,用来显示外猫的灯的状态,不过已经不记得了。。。。
 
接受答案了.
 
后退
顶部