【问题标题】:Capturing user events (button clicks etc) from another Windows application [closed]从另一个 Windows 应用程序捕获用户事件(按钮单击等)[关闭]
【发布时间】:2011-12-30 12:10:48
【问题描述】:

我希望编写一个 .Net Windows 应用程序,该应用程序将捕获用户如何使用另一个正在运行的应用程序。

最简单的形式是记录单击了哪些按钮或打开了哪些菜单项。捕获按钮文本或菜单文本就足够了。

我知道这可以通过监听事件来完成,但不确定这会延伸到什么程度。在 Windows 中,您是否能够侦听其他应用程序事件,或者它们是否对其他应用程序隐藏?

如果是这样,我可以使用任何 .Net 库或开源项目来捕捉这些事件吗?更进一步,将这些转换为通用事件(我认为很多应用程序可能会触发特定于它们的事件,因此提取通用信息是关键)

如果不是,是否只有将我的代码与应用程序集成以访问该应用程序事件的解决方案?

非常感谢

【问题讨论】:

  • 我曾经写过一个程序,它记录了用户活动的日志,即打开了哪个窗口,他们正在输入什么内容以及他们是否点击了任何地方。我不确定您是否可以将其扩展到能够说出他们特别按下的内容。
  • 您是如何获得这些信息的?您是否只能记录打开了哪些窗口以及鼠标在哪里?我猜这些事件将在窗口级别。不过你是对的,我认为我正在寻找包含在... Windows 中的窗口中的信息。
  • 我创建了一个 Windows 服务,它将在后台运行并输出到一个 txt 文件。我认为User32.dll 具有获取打开的窗口和该窗口中的文本的功能。
  • 啊,我明白了,听起来像是开始寻找的正确位置。谢谢。

标签: c# windows events open-source event-capturing


【解决方案1】:

如果我正确理解您的帖子,您需要类似于 Spy++ 的东西,它可以挂钩 Windows 消息并告诉您该消息何时被触发。

看看这些链接:

  1. Deliver The Power Of Spy++ To Windows Forms
  2. Spying Window Messages from the Inside
  3. How can I get functionality similar to Spy++ in my C# app?

【讨论】:

  • 很棒的东西!事实证明,这些联系非常宝贵。谢谢。
  • 如果其他人偶然发现这篇旧帖子并正在寻找第一个链接“传递力量...”中引用的文章,您将在 2006 年 4 月号中找到它。上面的链接将您带到主列表,但不再直接链接到文章或问题。
【解决方案2】:
private void CaptureCameraCallback()

{

    using (CvCapture cap = CvCapture.FromCamera(CaptureDevice.Any, 1))

    {

        while (true)

        {

            Bitmap bm = BitmapConverter.ToBitmap(cap.QueryFrame());

            bm.SetResolution(pctCvWindow.Width, pctCvWindow.Height);

            pctCvWindow.Image = bm;

        }

    }

}

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 2013-01-30
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    相关资源
    最近更新 更多