Estou usando o Windows 7 Home Premium em um laptop Sony VAIO VPC-F23BFX.
O problema é que a tecla caps lock só pode ser desativada usando a tecla Shift.
Nas Configurações Regionais do Painel de Controle, não importa se eu configurá-lo para desligar com a tecla Caps Lock ou a tecla Shift, ele sempre espera a tecla Shift.
Eu verifiquei e o valor do registro para esta opção está sendo salvo corretamente.
Eu também testei com este utilitário e os códigos de verificação sendo gerados são:
OnKeyDown, Key code=20, Control keys=, Key name CAPS LOCK
OnKeyup, Key code=20, Control keys=, Key name CAPS LOCK
ao pressionar o caps lock na primeira vez (liga); e:
OnKeyup, Key code=20, Control keys=, Key name CAPS LOCK
ao pressioná-lo uma segunda vez (ele não desliga).
Se eu pressionar shift, isso gera:
OnKeyDown, Key code=16, Control keys=Shift{Left}, Key name SHIFT
OnKeyDown, Key code=20, Control keys=Shift{Left}, Key name CAPS LOCK
OnKeyup, Key code=20, Control keys=Shift{Left}, Key name CAPS LOCK
OnKeyup, Key code=16, Control keys=, Key name SHIFT
Talvez algum programa esteja mexendo com os eventos do teclado? (Eu não estou usando AutoHotkey ou qualquer coisa semelhante).