Главная страница | назад





Article #17036: Getting modem status under Win32

 Question and Answer Database

FAQ2036D.txt   Getting modem status under Win32
Category   :Windows API
Platform    :All
Product    :All 32 bit  

Question:
How can I get the modem status under Win32?


Answer:
The following example demonstrates retrieving the current state 
of the modem control-register values under Win32.

Example:

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;


7/16/98 4:31:28 PM
 

Last Modified: 01-SEP-99