C# 键盘按键检测优先级问题

发布于 2024-11-04 19:18:26 字数 141 浏览 8 评论 0原文

我有一个应用程序可以检测 C# winform 上的按键。问题是在客户端,还有一些其他应用程序也检测按下的按键并抑制它们,因此我的应用程序的表单没有收到按下的按键的通知。我使用传统的 form.KeyDown 事件来检测密钥。我怎样才能获得比其他应用程序更高的优先级?

I have an application which detects pressed keys on C# winform. The problem is on client side there are some other applications which also detects the pressed keys and suppresses them and because of that my App's form does not get the notification for the pressed key. I have used traditional form.KeyDown event to detect the key. How can I take higher precedence than the other application?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

妄司 2024-11-11 19:18:26

如果您担心其他应用程序基本上窃取您的击键,那么您需要查看 全局挂钩 这几乎肯定是其他应用程序窃取您的应用程序的方式。您可以滚动自己的代码或使用其他人已经编写的包装库

If you're worried about other apps basically stealing your keystroke then you need to look into Global Hooks which is almost definitely how they other apps are stealing yours. You can roll your own code or use a wrapper library that someone else already wrote.

戏舞 2024-11-11 19:18:26

你可能正在打一场失败的战斗。或者至少是不断升级的。您发现某些其他应用程序正在抑制击键。因此,您创建了一个全局挂钩,以便首先获得击键。但随后另一个应用程序发现它不再排在第一位,因此它删除了自己的全局挂钩并在您的前面重新安装了一个。您发现了这一点并再次将自己插入到列表的前面。 。 。

这是一款墙和梯子的游戏能赢。因此,要么处理您的应用程序丢失击键的问题,要么从客户端计算机中删除有问题的应用程序。

You could be fighting a losing battle. Or at least an ever-escalating one. You've discovered that some other application is suppressing keystrokes. So you create a global hook so that you get the keystrokes first. But then that other application discovers that it's not first in line anymore, so it removes its own global hook and re-installs one in front of yours. You discover this and insert yourself in front of the list again . . .

It's a game of walls and ladders that nobody can win. So either deal with your application losing keystrokes or remove the offending application from the client machine.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文