скрипт

DVRST

Известный
Автор темы
806
125
подскажите ид правого шифта, в интернете не нашел не знаю, написанно A1, но если я ввожу то скрипт не работает на ту клавишу которую я хочу

 
Решение
подскажите ид правого шифта, в интернете не нашел не знаю, написанно A1, но если я ввожу то скрипт не работает на ту клавишу которую я хочу

Оба шифта идут на одно число - 0x10
Не знаю почему так, но если попробовать через WM_KEYDOWN или WM_SYSKEYDOWN чекать wParam на 0x10 и 0xA1, то при нажатии правого шифта в проверке на WM_KEYDOWN - будет 0x10, а 0xA1 вообще нигде не появляется.

Ты не указал язык, так что дал пример из луа, как RSHIFT тригерится.
Lua:
while true do wait(0)
    if isKeyDown(VK_RSHIFT) then
        print( 'RSHIFT' )
    end
end


upd:
У клавиш отличается longParam, для RSHIFT это 0x360001, для LSHIFT это 0x2a0001
Lua:
function onWindowMessage(msg, wparam, lparam)
    if msg...

Andrinall

Известный
702
527
подскажите ид правого шифта, в интернете не нашел не знаю, написанно A1, но если я ввожу то скрипт не работает на ту клавишу которую я хочу

Оба шифта идут на одно число - 0x10
Не знаю почему так, но если попробовать через WM_KEYDOWN или WM_SYSKEYDOWN чекать wParam на 0x10 и 0xA1, то при нажатии правого шифта в проверке на WM_KEYDOWN - будет 0x10, а 0xA1 вообще нигде не появляется.

Ты не указал язык, так что дал пример из луа, как RSHIFT тригерится.
Lua:
while true do wait(0)
    if isKeyDown(VK_RSHIFT) then
        print( 'RSHIFT' )
    end
end


upd:
У клавиш отличается longParam, для RSHIFT это 0x360001, для LSHIFT это 0x2a0001
Lua:
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
 
Последнее редактирование:
  • Нравится
Реакции: DVRST

DVRST

Известный
Автор темы
806
125
Оба шифта идут на одно число - 0x10
Не знаю почему так, но если попробовать через WM_KEYDOWN или WM_SYSKEYDOWN чекать wParam на 0x10 и 0xA1, то при нажатии правого шифта в проверке на WM_KEYDOWN - будет 0x10, а 0xA1 вообще нигде не появляется.

Ты не указал язык, так что дал пример из луа, как RSHIFT тригерится.
Lua:
while true do wait(0)
    if isKeyDown(VK_RSHIFT) then
        print( 'RSHIFT' )
    end
end


upd:
У клавиш отличается longParam, для RSHIFT это 0x360001, для LSHIFT это 0x2a0001
Lua:
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
спасибо тебе огромное, заработало
 
  • Нравится
Реакции: Andrinall