c# - 在 C# windows 服务中捕获键盘事件

标签 c# .net keyboard windows-services

我用 C# 创建了一个 Windows 服务。如何在按下某个键时调用一个函数,并在该函数中获取该键的值。我需要它来按下键和按下键。

我的目标是在按下特定系列的键时发送电子邮件。例如,如果您按 h-e-l-l-o,无论您在桌面上的哪个位置键入,程序都应该发送电子邮件。

另外,我可以用其他方式实现它。我需要一个在后台运行并在按下键时执行某些操作的程序。

我怎样才能做这样的事情? 一个例子会很有帮助。

最佳答案

正如有人已经评论过的,Windows 服务没有可以接收键盘焦点或 Windows 键盘消息的前台窗口。因此,要实现您所追求的目标,您唯一的选择是使用 low level event hook接收键盘事件。

但请注意,这些是系统范围的事件,您的服务可能会被它们淹没。它们在屏幕阅读器和其他辅助技术等应用程序中很有用,但我建议在使用此方法之前尝试考虑是否有其他方法可以完成您想做的事情。例如,您可以只在系统托盘中运行一个应用程序并订阅 WM_HOTKEY messages通过调用RegisterHotKey

这是一个example of a low-level keyboard hook in C# .

关于c# - 在 C# windows 服务中捕获键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56103251/

相关文章:

ios - UITextField 没有得到键盘输入

c# - 使用参数在 C# 中插入查询

c# - GetAsync azure 调用没有结果

c# - 字典对象性能

c# - Crystal 报表怪异错误(未知查询引擎错误)

c# - Win10 构建 : Loading assembly failed

vim - 在 Vim 中使用 Winkey

jquery - Phonegap - iOS 键盘没有隐藏在输入字段的外部点击上

c# - 分离事件 (C#)

c# - 动态设置类型或调用泛型方法的结果?