当前位置:  开发笔记 > 编程语言 > 正文

即使表单没有焦点,拦截按键也是如此

如何解决《即使表单没有焦点,拦截按键也是如此》经验,为你挑选了2个好方法。

我已经构建了一个winforms应用程序,它通过重写ProcessCmdKey方法来检查CTR + ALT + S和CTRL + ALT + E按键.这很好用,但是如果屏幕保护程序继续然后关闭,则表单没有焦点,并且不会截取按键.即使表格没有焦点,我怎样才能收到这些?



1> Adam L..:

Alexander Werner 在Code Project上有一个" System Hotkey Component "项目,它将RegisterHotkey()API封装到一个非常容易实现的用户控件中.



2> 小智..:

我知道两种方法:

    RegisterHotKey() - 您可以使用RegisterHotKey()函数来定义系统范围的热键.如果用户按下热键,Windows将发送WM_HOTKEY消息.

    Win32 Hooks - 这是一个最初设计用于支持基于计算机的培训(CBT)应用程序的旧API,但我相信Windows仍然支持它.API允许您拦截并可能修改任何窗口的消息,鼠标操作和击键.

这些是Win32 API,而不是.NET API,但.NET使用与Windows相同的底层组件,因此这些方法应该与.NET一起使用.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有