修改现有的C#键盘监听代码来拦截消息
现有 堆栈溢出问题 中效果很好,但我需要防止按键通过。引用该帖子的原作者的话:
如果您出于某种原因想要拦截系统键(创建例如 Alt+Tab 替换)并阻止窗口处理它们,您必须将 BeginInvoke 更改为 Invoke。还向 KeyDown、KeyUp 事件添加 Handled 属性以查看是否正在处理。之后,您要么调用 CallNextHookEx,要么不调用。)
我为我的无知道歉,但我不知道如何处理这个问题。谁能指出我进行这些修改的正确方向?我愿意并且能够学习,只是不知道从哪里开始。
Existing stack overflow question works great, except I need to prevent the key press from going through. To quote the original author of the post:
If you for some reason want to intercept system keys (creating e.g. Alt+Tab replacement) and preventing windows of handling them you must change the BeginInvoke to Invoke. Also adding Handled property to KeyDown, KeyUp events to see if it is being handled. After that you either call the CallNextHookEx or not.)
I apologize for my ignorance but I do not know how to handle this. Can anyone point me in the right direction for making these modifications? I am willing and able to learn, just not sure where to start.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您不希望其他应用程序看到这些按键,请不要调用 CallNextHookEx。
根据有关此 Win32 调用的 MSDN 文档,
If you don't want other apps to see the keys, don't invoke CallNextHookEx.
Per MSDN documentation on this Win32 call,