unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    txtType: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    txtKeys: TEdit;
    txtSubType: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  //Определяем тип клавиатуры
  case GetKeyboardType(0) of
    1: txtType.Text := 'PC/XT или совместимая (83 клавиши)';
    2: txtType.Text := 'Olivetti "ICO" (102 клавиши)';
    3: txtType.Text := 'PC/AT (84 клавиши) или похожая';
    4: txtType.Text := 'Расширенная (101 или 102 клавиши)';
    5: txtType.Text := 'Nokia 1050 или похожая';
    6: txtType.Text := 'Nokia 9140 или похожая';
    7: txtType.Text := 'японская';
  end;
  //Определяем код типа производителя
  txtSubtype.Text := IntToStr(GetKeyboardType(1));
  //Определяем количество функциональных клавиш
  txtKeys.Text := IntToStr(GetKeyboardType(2));
end;

end.
