在WIndow服务中捕获KeyPress事件

时间:2010-08-29 18:18:35

标签: c# windows events windows-services

我正在尝试创建一个窗口服务来创建一个小型键盘记录器应用程序。我是Windows服务的新手,我的唯一目的是学习。

如何获取Winforms中可用但在Windows服务中可用的所有事件?

我尝试在Google上搜索,但我无法知道如何执行此操作。我得到了很多关于keyhook DLL的引用。

1 个答案:

答案 0 :(得分:4)

Windows服务不是基于表单的,因此您无法以这种方式执行....请查看here以获取有关如何创建杀死其他窗口的Windows服务的示例。

窗口服务不是放置表单的理想位置...想想Linux / Unix变体下的守护进程 - 它们没有图形显示,也没有与用户交互,因此会“无头”想要一个单词,因为没有任何交互,而且,服务将在系统服务帐户下运行....

说到Keyloggers,它不会那样 - 你需要挂钩全局键盘钩子并拦截键,这样的一个例子就是here

然而,问题将出现在什么目的,收集数据等等 - 可能AV会将它们标记为恶意软件......如果你自己这样做 - 这很好......但是要恶意地将它放在另一台计算机上根据当地法律规定,用户对此非常了解并可能因侵犯隐私而告上法庭。