取得鍵盤狀態碼 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
Delphi 可以調用 Win API 的 Getkeyboardstate() 函數。 常量 按鍵名稱 VK_INSERT Insert 鍵 VK_NUMLOCK Num Lock 鍵 VK_CAPITAL Caps Lock 鍵 VK_SCROLL Scroll Lock 鍵 鍵盤緩沖區每一位都有一位特定的格式,對于狀態鍵來說,最低位是1時表示狀態鍵處于 ON 狀態, 你可以使用 odd() 函數來確定這一位的狀態,以下是一個簡單的例子請參考。例子中放置一個 Timer 控 件、一個 StayusBar1 狀態條。 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, ComCtrls; type TForm1 = class(TForm) StatusBar1: TStatusBar; Timer1: TTimer; procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Timer1Timer(Sender: TObject); var ks:tkeyboardstate; begin getkeyboardstate(ks); //檢測鍵盤函數 if odd(ks[VK_NUMLOCK]) then statusbar1.panels.items[0].text:='NUM' else statusbar1.panels.items[0].text:=''; if odd(ks[VK_INSERT]) then statusbar1.panels.items[1].text:='INSERT' else statusbar1.panels.items[1].text:=''; if odd(ks[VK_CAPITAL]) then statusbar1.panels.items[2].text:='CAPITAL' else statusbar1.panels.items[2].text:='' ; if odd(ks[VK_SCROLL]) the statusbar1.panels.items[3].text:='SCROLL' else statusbar1.panels.items[3].text:=''; end; end.
------
~~~Delphi K.Top討論區站長~~~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |