LowLevelKeyboardProc вызывается для приложений с повышенными правами при запуске без прав - PullRequest
0 голосов
/ 08 октября 2018

Мое приложение запускается как текущий пользователь без привилегий администратора.Затем он устанавливает ловушку клавиатуры для перехвата ключевых событий, используя SetWindowsHookEx с WH_KEYBOARD_LL (а не DLL-инъекцией).Он отлично работает для нажатий клавиш в другом окне, не являющемся администратором, но не работает с окном, запущенным от имени администратора.Я хотел бы, чтобы это работало для обоих.

С точки зрения безопасности, я полагаю, это имеет смысл, однако довольно досадно, что это подкралось ко мне (не удалось найти ничего, указывающего на это в документах WinAPI).Есть ли способ, которым я могу смягчить это без запуска моего приложения от имени администратора?Кроме того, у основной альтернативы, RawInputAPI , все еще будет эта проблема?

1 Ответ

0 голосов
/ 22 октября 2018

Предложение Ханса Пассанта - лучший ответ, который я могу найти.То есть, чтобы указать uiAccess="true" в app.manifest, который, кажется, будет работать, как только вы получите требования (подписанное приложение, защищенный каталог).

К сожалению, есть еще одна проблема, которая заключается в том, как запустить приложение из другого подписанного приложения с uiAccess.Это отдельный вопрос здесь:

Можно ли запустить процесс с uiAccess = true из другого процесса с uiAccess = true

...