首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 調用 WinAPI:GetKeyboardType 取得鍵盤類型資訊

     編輯:Delphi

偵測鍵盤硬體類型、子類型與功能鍵數量

GetKeyboardType 依參數 nTypeFlag 回傳三類資訊:0=鍵盤類型 (IBM PC/XT、AT、Enhanced 101/102 鍵等)、1=子類型 (廠商自訂)、2=功能鍵數量 (通常 12,即 F1-F12)。

函數宣告


function GetKeyboardType(nTypeFlag: Integer): Integer; stdcall;

完整範例


procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
  List: TStringList;
begin
  List := TStringList.Create;
  List.Add('IBM PC/XT or compatible (83-key) keyboard');
  List.Add('Olivetti "ICO" (102-key) keyboard');
  List.Add('IBM PC/AT (84-key) or similar keyboard');
  List.Add('IBM enhanced (101/102-key) keyboard');
  List.Add('Nokia 1050 and similar keyboards');
  List.Add('Nokia 9140 and similar keyboards');
  List.Add('Japanese keyboard');

  i := GetKeyboardType(0); // 鍵盤類型
  ShowMessage(List[i-1]);  // 索引從 1 開始,如 4 = Enhanced

  i := GetKeyboardType(1); // 子類型
  ShowMessage(IntToStr(i)); // 廠商自訂,通常 0

  i := GetKeyboardType(2); // 功能鍵數
  ShowMessage(IntToStr(i)); // 通常 12

  List.Free;
end;

鍵盤類型對照表 (nTypeFlag=0)

回傳值說明
1IBM PC/XT (83 鍵)
2Olivetti ICO (102 鍵)
3IBM PC/AT (84 鍵)
4IBM Enhanced (101/102 鍵) - 最常見
5Nokia 1050 系列
6Nokia 9140 系列
7日文鍵盤

現代鍵盤幾乎皆回傳 4 (Enhanced) 與 12 功能鍵。此 API 適用於需針對特殊鍵盤佈局調整 UI 的舊版相容軟體。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved