用Delphi检测特殊键状态,用Delphi检测特殊键状态
【 tulaoshi.com - Delphi 】
  在编程中,三个特殊键(NUM LOCK键、CAPS LOCK键、SCROLL LOCK键)是可以通过键盘控制操作的。但有时在应用程序中需要切换大小写输入、数字键输入等功能,这就需要在程序中加入自动判别这些键状态和切换这些键状态的功能。笔者用Delphi4.0编制了一个检测和切换这些特殊键的程序。 
  一、创建含有如下控件的窗体:
控件
Caption
form1
用Delphi检测Num Lock键,Caps Lock键,Scroll Lock键的状态
checkbox1
按下Num Lock键
checkbox2
按下Caps Lock键
checkbox3
按下Scroll Lock键
Time1
  
二、编写如下程序: 
  unit nums; 
  interface 
  uses 
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
   ExtCtrls, ComCtrls, StdCtrls; 
  type 
   TForm1 = class(TForm) 
  Timer1: TTimer; 
  CheckBox1: TCheckBox; 
  CheckBox2: TCheckBox; 
  CheckBox3: TCheckBox; 
  procedure Timer1Timer(Sender: TObject); 
   private 
  { Private declarations } 
   public 
  { Public declarations } 
   end; 
  var 
   Form1: TForm1; 
  implementation 
  {$R .DFM} 
  procedure TForm1.Timer1Timer(Sender: TObject); 
  var keystates:TKeyboardState; 
  begin 
  getkeyboardstate(keystates); 
  begin 
  if odd(keystates[vk—numlock]) then 
  checkbox1.Checked:=true 
  //判断是否按下Num Lock钮 
  Numlock 
  else 
  checkbox1.Checked:=false; 
  if odd(keystates[vk—CAPITAL]) then 
  checkbox2.Checked:=true 
  //判断是否按下Caps Lock钮 
  else 
  checkbox2.Checked:=false; 
  if odd(keystates[vk—Scroll]) then 
  //判断是否按下Scroll Lock钮 
  checkbox3.Checked:=true 
  else 
  checkbox3.Checked:=false; 
  end; 
  end; 
  end. 
来源:http://www.tulaoshi.com/n/20160129/1492967.html
看过《用Delphi检测特殊键状态》的人还看了以下文章 更多>>