Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Visual C++ / MFC / WTL > WH_KEYBOARD хук не работает на Universal Windows приложениях


Автор: ViH 07.05.20, 14:27
Добрый день,

Реализовал WH_KEYBOARD хук через DLL, который устанавливается из моего MFC приложения так:
SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, hInstance, 0)

Но проблема в том, что если активно какое-нибудь Universal Windows приложение, например, новый Skype, то не вызывается KeyboardProc.
Подскажите, пожалуйста, можно ли как-то это исправить?

С низкоуровневым WH_KEYBOARD_LL хуком всё работает, но его использовать не могу из-за некоторых его ограничений.

Нашел в документации https://docs.microsoft.com/en-us/windows/wi...twindowshookexw такую информацию:
Цитата
Windows Store app development If dwThreadId is zero, then window hook DLLs are not loaded in-process for the Windows Store app processes and the Windows Runtime broker process unless they are installed by either UIAccess processes (accessibility tools). The notification is delivered on the installer's thread for these hooks: WH_JOURNALPLAYBACK, WH_JOURNALRECORD, WH_KEYBOARD, WH_KEYBOARD_LL, WH_MOUSE, WH_MOUSE_LL
This behavior is similar to what happens when there is an architecture mismatch between the hook DLL and the target application process, for example, when the hook DLL is 32-bit and the application process 64-bit.

Но не понятно как это применить.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)