Me autorespondo y dejo la solución por si alguien también tiene el mismo problema
Código Delphi
[-]procedure ToggleNumLock(tecla:integer);
var
KeyState: TKeyboardState;
begin
GetKeyboardState(KeyState) ;
if (KeyState[tecla] = 0) then
begin
Keybd_Event(tecla, 1, KEYEVENTF_EXTENDEDKEY or 0, 0) ;
Keybd_Event(tecla, 1, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0) ;
end
else
begin
Keybd_Event(tecla, 0, KEYEVENTF_EXTENDEDKEY or 0, 0) ;
Keybd_Event(tecla, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0) ;
end;
end;
procedure ParpadearTimer(Sender: TObject);
begin
parpadear.Enabled:=false;
if radionumlock.Checked then ToggleNumLock(VK_NUMLOCK);
if radiomayusculas.Checked then ToggleNumLock(VK_CAPITAL);
if radioscroll.Checked then ToggleNumLock(VK_SCROLL);
parpadear.Enabled:=true;
end;