[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]