[英]Global low-level mouse hook doesn't get called when UWP desktop app is out of focus
[英]Low level mouse hook doesn't fire mousedown/mouseup event on admin process
我现在正在编辑这个项目,因为我认为我已经确定了问题,这似乎是Win8.1和Win10的操作系统错误。 问题摘要仍然与以前相同“低级鼠标挂钩不会在管理进程上触发mousedown / mouseup事件” ...对于管理员应用程序,如果非管理员启动其自己的低级别挂钩。
重现问题的步骤:
结果:请注意,作为管理员运行的应用程序实例(从#2开始)现在无法获得鼠标上/下/点击事件,但它仍然可以获取其他鼠标事件和所有键盘事件
有没有人遇到过这个问题?
OP:
...它证实,当前台窗口正在作为管理员的mouseup / MouseDown事件中,没有得到触发。
OP:
如果我的应用程序没有 以管理员身份运行,那么我无法获得所有鼠标/键盘事件,
从Vista开始,应用程序无法在提升的应用程序上发布消息或安装挂钩。 这是通过用户界面权限隔离(UIPI)和完整性 (见下文)完成的。
MSDN:
UIPI不会干扰或更改同一特权(或完整性)级别的应用程序之间窗口消息传递的行为。 UIPI通过阻止以下行为来防止低权限进程访问更高权限的进程 。 较低权限的进程不能 :
- 对具有更高权限的进程执行窗口句柄验证。
- 将SendMessage或PostMessage用于以更高权限运行的应用程序窗口。 这些API返回成功但静默删除窗口消息。
- 使用线程挂钩附加到以更高权限运行的进程。
- 使用日志挂钩来监视以更高权限运行的进程 。
- 对运行具有更高权限的进程执行动态链接库(DLL)注入。 告诉我更多......
我记得在Vista发布之前,有一个可爱的Word文档,主要是关于为Windows Vista准备应用程序,但遗憾的是我无法找到它。
但如果我的应用程序以管理员身份运行,则无法获取mousedown / mouseup事件
也许你的鼠标钩有问题? 没有看到你的代码就无法分辨。
这是Windows的已知问题
根据我的理解,不适用于Windows Vista +。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.