How can you change the caplock and numlock state ?

I tryed something like that :
Code:
asm{
mov ax, 0x0040
mov es, ax
mov ah, es:[0x0017]
xor ah, 0x40
mov es:[0x0017], ah
}
But it doesnt work ??? Why ?