Оба шифта идут на одно число - 0x10
Не знаю почему так, но если попробовать через WM_KEYDOWN или WM_SYSKEYDOWN чекать wParam на 0x10 и 0xA1, то при нажатии правого шифта в проверке на WM_KEYDOWN - будет 0x10, а 0xA1 вообще нигде не появляется.
Ты не указал язык, так что дал пример из луа, как RSHIFT тригерится.
while true do wait(0)
if isKeyDown(VK_RSHIFT) then
print( 'RSHIFT' )
end
end
upd:
У клавиш отличается longParam, для RSHIFT это 0x360001, для LSHIFT это 0x2a0001
function onWindowMessage(msg, wparam, lparam)
if msg == 0x0100 or msg == 0x0104 then
if wparam == 0x10 then
if lparam == 0x360001 then
print("RSHIFT")
end
if lparam == 0x2a0001 then
print("LSHIFT")
end
end
end
end