[Back to KEYBOARD SWAG index] [Back to Main SWAG index] [Original]
{ ROB PERELMAN }
Unit KeyStats;
Interface
Function RightShift : Boolean;
Function LeftShift  : Boolean;
Function Control    : Boolean;
Function Alt        : Boolean;
Function ScrollLock : Boolean;
Function NumLock    : Boolean;
Function CapsLock   : Boolean;
Function Insert     : Boolean;
Implementation
Uses
  Dos;
Function ShiftState : Byte;
Var
  Regs : Registers;
begin
  Regs.Ah := 2;
  Intr($16, Regs);
  ShiftState := Regs.Al;
end;
Function RightShift : Boolean;
begin
  RightShift := (ShiftState and 1) <> 0;
end;
Function LeftShift : Boolean;
begin
  LeftShift := (ShiftState and 2) <> 0;
end;
Function Control : Boolean;
begin
  Control := (ShiftState and 4) <> 0;
end;
Function Alt : Boolean;
begin
  Alt := (ShiftState and 8) <> 0;
end;
Function ScrollLock : Boolean;
begin
  ScrollLock := (ShiftState and 16) <> 0;
end;
Function NumLock : Boolean;
begin
  NumLock := (ShiftState and 32) <> 0;
end;
Function CapsLock : Boolean;
begin
  CapsLock := (ShiftState and 64) <> 0;
end;
Function Insert : Boolean;
begin
  Insert := (ShiftState and 128) <> 0;
end;
end.
[Back to KEYBOARD SWAG index] [Back to Main SWAG index] [Original]