首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vista和更高版本上的系统范围键盘挂钩

Vista和更高版本上的系统范围键盘挂钩
EN

Stack Overflow用户
提问于 2009-10-01 19:32:23
回答 1查看 1.7K关注 0票数 5

我有一个系统范围的键盘钩子DLL,它已经在Windows XP中成功运行多年。

然而,在Windows的某些较新版本(比如Vista Home Premium和Windows7)中,钩子要么根本不起作用,要么只能在安装它的应用程序中本地工作。

我在互联网上的几个地方看到过在调用SetWindowsHookEx时建议将WH-键盘改为WH-键盘-LL,但当我尝试时,这似乎没有帮助。除了将钩子类型更改为WH-KEYBOARD LL之外,是否还有其他需要更改的内容?

(附言:我不得不将WH-KEYBOARD-LL定义为13,因为它没有在Delphi中定义。我假设这是准确的。)

EN

回答 1

Stack Overflow用户

发布于 2009-10-01 23:08:39

确保托管挂钩的进程与您打算挂钩的应用程序处于相同的权限级别。键盘和其他挂钩是一个很高的安全风险,因此Vista和更高版本被更改为只允许在公共的特定安全上下文中的进程中使用系统范围的挂钩。换句话说,如果您使用用户权限启动挂钩宿主进程,它将只挂钩处于相同权限级别的进程。仔细想想,这是有意义的,因为您不希望用户级进程能够将代码注入到管理员级进程中。这在很多层面上都是不好的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1505983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档