uMainForm.pas
上传用户:wang_niyan
上传日期:2022-05-07
资源大小:313k
文件大小:2k
源码类别:

编辑器/阅读器

开发平台:

Delphi

  1. unit uMainForm;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, ExtCtrls, StdCtrls, IniFiles, MPlayer, GIFImg;
  6. type
  7.   TfrmMainForm = class(TForm)
  8.     Timer: TTimer;
  9.     Image1: TImage;
  10.     procedure FormCreate(Sender: TObject);
  11.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  12.     procedure TimerTimer(Sender: TObject);
  13.   private
  14.     { Private declarations }
  15.     Port: HWND;
  16.     Configuration: TIniFile;
  17.   public
  18.     { Public declarations }
  19.   end;
  20. var
  21.   frmMainForm: TfrmMainForm;
  22. implementation
  23. uses sndkey32;
  24. function OpenSerialPort(APort: Byte;
  25.                         ABaudRate: DWORD;
  26.                         ADataSize, AParity, AStopBits: Byte): HWND; external 'Serial.dll';
  27. function ReadFromSerial(AHWND: HWND; ATimeOut: Cardinal): AnsiChar; external 'Serial.dll';
  28. procedure WriteToSerial(AHWND: HWND; C: Char; ATimeOut: Cardinal); external 'Serial.dll';
  29. {$R *.dfm}
  30. procedure TfrmMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
  31. begin
  32.   CloseHandle(Port);
  33. end;
  34. procedure TfrmMainForm.FormCreate(Sender: TObject);
  35. begin
  36.   Randomize;
  37.   Configuration := TIniFile.Create(Application.ExeName + '.ini');
  38.   Port := OpenSerialPort(Configuration.ReadInteger('COM', 'Port', 1),
  39.                          Configuration.ReadInteger('COM', 'Baud', 9600),
  40.                          Configuration.ReadInteger('COM', 'DataSize', 8),
  41.                          Configuration.ReadInteger('COM', 'Parity', 0),
  42.                          Configuration.ReadInteger('COM', 'StopBit', 0));
  43.   Timer.Enabled := True;
  44. end;
  45. procedure TfrmMainForm.TimerTimer(Sender: TObject);
  46. var
  47.   c: AnsiChar;
  48.   S: String;
  49. begin
  50.   c := ReadFromSerial(Port, Timer.Interval);
  51.   while c <> #0 do
  52.   begin
  53.     S := c;
  54.     SendKeys(PChar(S), False);
  55.     c := ReadFromSerial(Port, Timer.Interval);
  56.   end;
  57. end;
  58. end.