
Сообщение от
Titus
когда я переделал клавиатуру с DirectInput на обработчик хуков, плохо стала работать комбинация из трех нажатых клавиш PrintScr+Scroll+Pause (по ним ресет на спектруме делался у меня). Приходится теперь несколько раз на них нажимать, нажимать, пока сработает. На DirectInput'е такого не было)
Я сделал для модульного API имитацию DirectInput через хуки - вроде всё работает, даже если нажать эти три клавиши:
Код:
vkCode[0x2C] ; wParam[ 44] ; uScan[311] ; cFlags[0x1]
vkCode[0x91] ; wParam[145] ; uScan[ 70] ; cFlags[0x0]
WM_KEYDOWN uScan:[ 70] ; DIK_SYSRQ[0x80] ; DIK_SCROLL[0x80] ; DIK_PAUSE[0x00]
vkCode[0x13] ; wParam[ 19] ; uScan[ 69] ; cFlags[0x0]
WM_KEYDOWN uScan:[ 69] ; DIK_SYSRQ[0x80] ; DIK_SCROLL[0x80] ; DIK_PAUSE[0x80]
vkCode[0x13] ; wParam[ 19] ; uScan[ 69] ; cFlags[0xFFFFFF80]
WM_KEYUP uScan:[ 69] ; DIK_SYSRQ[0x80] ; DIK_SCROLL[0x80] ; DIK_PAUSE[0x00]
vkCode[0x2C] ; wParam[ 44] ; uScan[311] ; cFlags[0xFFFFFF81]
WM_KEYUP uScan:[311] ; DIK_SYSRQ[0x00] ; DIK_SCROLL[0x80] ; DIK_PAUSE[0x00]
vkCode[0x91] ; wParam[145] ; uScan[ 70] ; cFlags[0xFFFFFF80]
WM_KEYUP uScan:[ 70] ; DIK_SYSRQ[0x00] ; DIK_SCROLL[0x00] ; DIK_PAUSE[0x00]
Правда у меня почему-то нажатие клавиши <PrintScreen> не сопровождается вызовом WM_KEYDOWN ( лень разбираться почему - просто делаю скриншоты по WM_KEYUP ).