Unit Unit1; Interface Uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Type TForm1 = Class(TForm) ReleaseScrollLockBtn: TButton; SetScrollLockBtn: TButton; Procedure SetScrollLockBtnClick(Sender: TObject); Procedure ReleaseScrollLockBtnClick(Sender: TObject); Private { Private declarations } Public { Public declarations } End; Var Form1 : TForm1; Implementation {$R *.DFM} //---------------------------------------------------------------------- // The Numlock key can be pressed this way under NT but NOT under W95! // The ScrollLock and CapsLock can be pressed this way under NT and W95 // as well. // You can also simulate a PrintScreen (SnapShot). // See the Delphi help file for soft-pressing this key. // (Set the blinking cursor in the word: "keybd_event" and press: "F1") //---------------------------------------------------------------------- Procedure SetNumLock(Bo : Boolean); Var keyState : TKeyBoardState; Begin GetKeyboardstate(keyState); // keyState[VK_SCROLL] = 0 means the led is off // keyState[VK_SCROLL] 0 means the led is on If ( (Bo = True) and (keyState[VK_SCROLL] = 0) ) or ( (Bo = False) and (keyState[VK_SCROLL] 0) ) then Begin // Simulate a depress keybd_event(VK_SCROLL,45,KEYEVENTF_EXTENDEDKEY,0); // Simulate a release keybd_event(VK_SCROLL,45,KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP,0); End; End; //---------------------------------------------------------------------- Procedure TForm1.SetScrollLockBtnClick(Sender: TObject); Begin SetNumLock(TRUE); End; //---------------------------------------------------------------------- Procedure TForm1.ReleaseScrollLockBtnClick(Sender: TObject); Begin SetNumLock(FALSE); End; //---------------------------------------------------------------------- End. {of Unit1} //======================================================================