Mozda nekome treba. Ovo sam uradio pre dve godine. Dosta vremena sam utrosio da ga provalim (windows API @#!#*&%) ali se isplatilo.
procedure TForm1.Timer1Timer(Sender: TObject);
var
KeyState: TKeyboardState;
begin
//**********Provera da li je ukljucen NumLock***********
if GetKeyState(VK_NUMLOCK) = -127
then //NumLock je ukljucen -127
begin
end
else //NumLock je iskljucen -128
begin
GetKeyboardState(KeyState);
KeyState[VK_NUMLOCK]:=$81; // Ukljucujemo NumLock
SetKeyboardState(KeyState);
end;
//***********************************************
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
KeyState: TKeyboardState;
begin
//**********Provera da li je ukljucen NumLock***********
if GetKeyState(VK_NUMLOCK) = -127
then //NumLock je ukljucen -127
begin
end
else //NumLock je iskljucen -128
begin
GetKeyboardState(KeyState);
KeyState[VK_NUMLOCK]:=$81; // Ukljucujemo NumLock
SetKeyboardState(KeyState);
end;
//***********************************************
end;