Здравствуйте.
Мне необходимо на C# написать класс, который выдает сообщение (MessageBoox.Show()) при нажатии "LShift+Numpad1" в WPF (желательно).
WinAPI.
RegisterHotKey — не различает левый и правый Shift, да и к тому же просто "Shift+Numpad1" не позволяет обработать.
WinAPI.
SetWindowsHookEx — для меня, как-то работает не логично, например(
KBDLLHOOKSTRUCT):
нажимаю LShift выдает, что я нажал —
VirtualKeyCode 160, ScanCode 42, Flags 0, == LShiftKey
нажимаю Numpad1 —
VirtualKeyCode 160, ScanCode 554, Flags LLKHF_UP, == LShiftKey (хотя я все еще удерживаю LShift!!!!!)
и
VirtualKeyCode 35, ScanCode 79, Flags 0, == End (Хотя я ж нажимал только 1ну клавишу — Numpad1 !?!?!?!?)
теперь отпускаю в обратном порядке (начинаю с Numpad1):
VirtualKeyCode 35, ScanCode 79, Flags LLKHF_UP, == End (Хотя я отпустил только Numpad1, кто-то зачем-то за меня нажал Shift!!!!)
и
VirtualKeyCode 160, ScanCode 42, Flags 0, == LShiftKey
отпускаю LShift:
VirtualKeyCode 160, ScanCode 42, Flags LLKHF_UP, == LShiftKey
на всякий случай: NumLock — On, Caps Lock — On,
Int32 LowLevelKeyboardProc(Int32 nCode, Int32 wParam, IntPtr lParam)
подскажите как добиться уведомления о такой комбинации?