15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как программно установить конфигурацию COM-порта в Windows 95

procedure TForm1.Button1Click(Sender: TObject);
var
  CommPort : string;
  hCommFile : THandle;
  Buffer : PCommConfig;
  size : DWORD;
begin
  CommPort := 'COM1';
{Открываем Com-порт}
  hCommFile := CreateFile(PChar(CommPort),
                          GENERIC_WRITE,
                          0,
                          nil,
                          OPEN_EXISTING,
                          FILE_ATTRIBUTE_NORMAL,
                          0);
  if hCommFile=INVALID_HANDLE_VALUE then
  begin
    ShowMessage('Unable to open '+ CommPort);
    exit;
  end;
{Выделяем временный буфер}
  GetMem(Buffer, sizeof(TCommConfig));

{Получаем размер структуры CommConfig}
  size := 0;
  GetCommConfig(hCommFile, Buffer^, size);

{Освобождаем временный буфер}
  FreeMem(Buffer, sizeof(TCommConfig));

{Выделяем память для структуры CommConfig}
  GetMem(Buffer, size);
  GetCommConfig(hCommFile, Buffer^, size);

{Изменяем скорость передачи}
  Buffer^.dcb.BaudRate := 1200;

{Устанавливаем новую конфигурацию для COM-порта}
  SetCommConfig(hCommFile, Buffer^, size);

{Освобождаем буфер}
  FreeMem(Buffer, size);

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