C# 消费全局键事件
Posted
技术标签:
【中文标题】C# 消费全局键事件【英文标题】:C# Consume Global Key Event 【发布时间】:2019-01-01 01:10:54 【问题描述】:我现在正面临一个艰难的,至少对我来说很艰难!
我正在使用this code 来捕获按键事件,即使窗口失焦,它也能正常工作。
不过,此外,我希望能够在关键事件被当前具有焦点的任何其他应用程序使用之前使用它。
搜索后搜索没有给我带来任何结果,有谁知道这可能是如何完成的?
【问题讨论】:
请问您为什么需要这个? (非常好奇) 哈哈,我想这会出现!我们有用于空客驾驶舱模拟器的 MCDU 的键盘,它们的作用类似于普通的 USB 键盘,但我想单独处理它们。 用户名签出 o7 Low-Level Keyboard Hook in C# @Maverick283 你会看到_proc = HookCallback
和SetHook(_proc)
。所以HookCallback
是消费者。
【参考方案1】:
我确定有一个最简单的方法来解决这个问题(您使用的代码是旧的),但我发现了这个post。 (看最后的代码)
无论如何,您始终可以使用 'KeyEventArgs.Handled = true;' 'KeyDown' 和 'KeyUp' 事件中的属性,以限制键的传播。
【讨论】:
【参考方案2】:Here 是一个程序的源代码,它捕获窗口上的每个键,记录它,然后将它传递给下一个程序。
您可以将该代码作为起点,并有条件地执行对 CallNextHookEx 的调用以使用密钥。
【讨论】:
以上是关于C# 消费全局键事件的主要内容,如果未能解决你的问题,请参考以下文章