Hot Key
От: Business  
Дата: 06.09.11 15:37
Оценка:
Здравствуйте.
Мне необходимо на 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)

подскажите как добиться уведомления о такой комбинации?
"Производная функции" — со школы не пойму чё это и в какой момент нужно будет применить... :???:
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.