Я запрограммировал приложение, которое имеет оверлейное окно, которое может быть показано и скрыто с помощью горячей клавиши, в то время как другое приложение имеет фокус. Упомянутое другое приложение - это игра DirectX, работающая с правами администратора.Как получить ввод с клавиатуры из приложения с правами администратора для приложения без администратора?
Я уже пробовал 3 возможных решения, чтобы получить уведомление, когда моя горячая клавиша нажата в другом приложении, 2 из них - вид работы, но для моего приложения также требуются административные привилегии. Это приемлемо, но я бы предпочел иметь решение, которое не требует этих привилегий. Я уверен, что должен быть какой-то способ, так как приложениям, таким как TeamSpeak, удается получать входные данные без запуска как admin.
То, что я уже пробовал:
- RegisterHotkey - не подходит, потому что он не работает в то время как в DirectX окна.
- SetWindowsHookEx - работает как обычный клавиатурный крючок, но только с правами администратора.
- GetAsyncKeyState - работает, чтобы проверить указанную горячую клавишу, но не без дополнительных прав администратора еще раз.
Итак, я был бы очень благодарен, если бы кто-то мог представить идею для другого решения, поскольку я ничего не могу придумать ... Я использую Delphi, но поскольку я полагаюсь на Windows API в любом случае я не думаю, что решение будет специфичным для языка.
Спасибо за ваш вклад, кажется, это правильное решение. Однако из того, что я прочитал, предоставление такого самозаверяющего сертификата вместе с моим установщиком представляет собой потенциальный риск для безопасности, который я бы предпочел не принимать, поскольку у меня нет более глубокого понимания этого вопроса ... исправьте меня, Неправильно. – DNR
@HeinaBaumstamm Я полагаю, что для пользователя безопаснее запускать приложение с помощью uiAccess по полной прав администратора ... в любом случае вы должны доверять им, что вы не навязываете им вредоносное ПО. В противном случае вероятность того, что ваше приложение станет точкой входа для внешних эксплойтов, будет минимальным. Разумеется, ваше приложение будет более ограниченным в случае случайного повреждения, которое может быть вызвано ошибками, если вы используете uiAccess поверх прямого администратора. Это действительно вопрос удобства и доверия ... зависит от того, кто будет использовать программу, действительно. –