除了只能由操作系统提供的应用程序启动快捷方式之外,Windows 键盘挂钩之类的东西的合法用途是什么?在我看来,我们只遇到键盘记录器之类的问题,因为操作系统提供了挂钩来执行除 O/S 内核本身之外的任何情况下任何人都不应允许的事情。
编辑:好的,所以考虑到一些可能需要它们的合法地方,操作系统不应该提供高级别的能力来全局关闭它们,并且只允许逐个程序的异常吗?
除了只能由操作系统提供的应用程序启动快捷方式之外,Windows 键盘挂钩之类的东西的合法用途是什么?在我看来,我们只遇到键盘记录器之类的问题,因为操作系统提供了挂钩来执行除 O/S 内核本身之外的任何情况下任何人都不应允许的事情。
编辑:好的,所以考虑到一些可能需要它们的合法地方,操作系统不应该提供高级别的能力来全局关闭它们,并且只允许逐个程序的异常吗?
我目前正在为企业客户端开发移动应用程序平台/硬件抽象层,其中一个要求是在一段时间不活动后会启动屏幕保护程序。由于移动设备没有鼠标可以移动,因此“活动”包括按键或屏幕点击。我们的一个设备没有触摸屏,长话短说,移动硬件供应商没有正确实现 Win32 API 调用,这将使我能够获得自上次用户输入以来的时间。
由于硬件供应商不愿意正确实现 Win32 API,我知道确保我的控制台应用程序可以捕获系统上任何应用程序中的按键按下的下一个最佳方法是安装一个全局键盘挂钩。
也就是说,我同意普通消费者场景与我的非常不同,操作系统应该允许用户将这样的活动列入白名单。
并非如此,在某些环境中,计算机的所有者可能想要停止诸如Ctrl++ Alt...Delete示例、Kiosk 或 .... Best Buy 之类的东西?
我写了一个应用程序,让我可以在我的显示器上放置虚拟便签。我使用操作系统键盘挂钩将热键绑定到它。
我在设置中有一个选项可以禁用钩子。
可能没有很多合法用途。但是,我认为您不应该故意限制系统的功能,而只是为了使其更安全。
此外,如果您知道它在那里并且您自己安装了它,那么键盘记录器也不是一件坏事。