winapi - 以非提升方式运行时,为提升的应用程序调用 LowLevelKeyboardProc
问题描述
我的应用程序以当前用户身份运行,没有管理员权限。SetWindowsHookEx
然后它安装一个键盘钩子来使用with WH_KEYBOARD_LL
(不是 DLL 注入)来捕获关键事件。它可以很好地击键到一个非管理员窗口,但是对于以管理员身份运行的窗口它没有捕获任何内容。我希望它对两者都有效。
从安全的角度来看,我认为这是有道理的,但是这让我很恼火(在 WinAPI 文档中找不到任何表明这一点的东西)。有什么方法可以缓解这种情况而无需以管理员身份运行我的应用程序?另外,主要的替代方案RawInputAPI还会有这个问题吗?
解决方案
Hans Passant 的建议是我能找到的最佳答案。也就是说,uiAccess="true"
在 app.manifest 中指定一旦满足要求(签名的应用程序、受保护的目录)就可以工作。
不幸的是,还有另一个问题是如何从另一个使用uiAccess
. 这是一个单独的问题:
推荐阅读
- c++ - 从我的类到字符串的隐式和显式转换
- c - 我可以在不为我计算的情况下打印出一个 int 吗(带有“+”符号和前后两个数字)在 c 中?
- c - C中存储用户输入的二维数组
- verilog - 如何创建正边缘检测器行为代码?
- java - Eclipse GWT SDK 2.8.2 和 Java11
- plugins - 使用 RQT 插件按钮启动 ROS 启动文件问题
- javascript - 使用 Javascript 识别和输入文本到输入字段
- django-models - 如何在 django 中使用 OneToOneFeild 扩展 AbstractBaseUser
- windows - To associate file extension with specific program
- python - Python/Kivy:如何在特定的 mip 级别显示图像?