Como ligar ou desligar Caps Lock usando Delphi

procedure TForm1.Button1Click(Sender: TObject);
var
  KeyState: TKeyboardState;
begin
  GetKeyboardState(KeyState);
  if(KeyState[VK_CAPITAL] = 0) then
    begin
      Keybd_Event(VK_CAPITAL, 1, KEYEVENTF_EXTENDEDKEY or 0, 0);
      Keybd_Event(VK_CAPITAL, 1, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
    end
  else
    begin
      Keybd_Event(VK_CAPITAL, 0, KEYEVENTF_EXTENDEDKEY or 0, 0);
      Keybd_Event(VK_CAPITAL, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
    end;
end;

Execute o aplicativo e clique no botão. Você verá que a cada clique no botão, a "luzinha" do Caps Lock é acesa ou apagada.


FONTE: http://www.arquivodecodigos.net/arquivo/tutoriais/delphi/ligar_desligar_caps_lock.php