代码之家  ›  专栏  ›  技术社区  ›  netmajor

应用程序在后台读取用户按的键

  •  1
  • netmajor  · 技术社区  · 15 年前

    我想做一个在后台工作的应用程序,读取用户按下的所有键并将其保存到文件中。 我开始在Win窗体中编写它,并使用按键事件,但当窗体聚焦时它工作:/

    这是另一种方法吗?我听说过Windows服务,但从未使用过:/

    3 回复  |  直到 9 年前
        1
  •  4
  •   Filip Ekberg    15 年前

    您可以通过以下方法来实现:

    我不知道你的理由,但我只是希望他们“好”。

        2
  •  2
  •   fabriciorissetto    9 年前

    在做了大量的研究,寻找一个好的代码来实现这一点之后,我决定创建自己的代码。 C键盘记录器API . 它非常简单和干净:

    api.CreateKeyboardHook((character) => { Console.Write(character); });
    

    您只需要通过一个回调,API将返回用户按下的键,其中包括:用户当时所在的屏幕。显然,它在后台工作。

    详细信息如下: https://github.com/fabriciorissetto/KeystrokeAPI

        3
  •  1
  •   Community CDub    8 年前

    我假设你想拦截 全部的 关键事件到 全部的 窗户:

    我不推荐C来做这个。你需要下载到Win32/64 API,这是可以做到的,但是你最好使用Visual C++ +没有训练轮的东西。

    有几种方法可以做到这一点。到目前为止,最简单的方法是注册一个键盘事件挂钩。实现基本服务并处理主循环/事件处理程序中的按键事件。您也可以在一个严格的轮询循环中强制键盘状态,但这会使CPU哭泣。

    有1000001种方法可以在没有管理员权限的情况下安装自己的键盘驱动程序,但是如果你走这条路的话,你需要自己找到一个。

    我很怀疑 stackoverflow 将帮助您创建密钥记录器。您将需要深入到win32 API的内部,并且很可能自己解决这个问题。如果你有扎实的C背景就不难了。Windows“安全”只不过是烟雾和镜子。

    推荐文章