Este par de funciones te pueden servir:
Código:
// Determina si está activa
function CapsOn: Boolean;
var
KeyState: Integer;
begin
KeyState := GetKeyState(VK_CAPITAL);
Result := (KeyState and $01) <> 0;
end;
// Intercambia entre acitiva e inactiva
procedure Toggle;
begin
Keybd_Event(VK_CAPITAL, 0, KEYEVENTF_EXTENDEDKEY, 0);
Keybd_Event(VK_CAPITAL, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
end;
Creo que no hay una forma directa de activarla o desactivarla, sólo de intercambiar el estado de manera que para activarla (sin desactivarla en el caso de que ya estuviera activa) tendrías que hacer:
Código:
if not CapsOn then Toggle;
// Saludos