Как узнать состояние модема в Win32?

Материал из DRKB

Как узнать состояние модема в Win32?[править | править код]

Следующий пример демонстрирует получение состояния управляющих регистров модема.

Пример:

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

  { Открываем com-порт } 
  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; 

  { Получаем состояние модема } 
  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; 

  { Закрываем com-порт } 
  CloseHandle(hCommFile); 
end;


Source: Взято из http://forum.sources.ru
ID: 01462