【问题标题】:Getting events of another application获取另一个应用程序的事件
【发布时间】:2011-10-26 14:57:10
【问题描述】:

在我的 c# 应用程序中,我需要检测用户何时单击不同第三方应用程序中的两个按钮之一。

我能够获取应用程序的句柄,但 MainWindowHandle 返回 0。

我尝试了WndProc,但由于某种原因,该事件不会在我的应用程序中触发。

如何从该应用程序获取/拦截按钮单击事件到我的应用程序中?

【问题讨论】:

  • 第三方应用程序是否公开了您可以连接的事件?该第三方中使用的按钮是否对您公开?甚至至少受到保护?
  • 能否对第三方进行一些修改?
  • @user390480: 第三方应用程序是用什么语言和框架编写的?
  • 我不相信这些按钮可以公开访问。我无法修改应用程序。我认为它是用 c++ 或 .NET 2003 版本编写的。

标签: c# .net winforms events


【解决方案1】:

全局系统挂钩允许应用程序拦截用于其他应用程序的 Windows 消息。这在 C# 中一直很难实现。 Codeplex 上的这个项目试图通过在 C++ 中创建一个 DLL 包装器来实现全局系统挂钩,该包装器将消息发布到挂钩应用程序的消息队列中。简而言之,这使您可以从托管代码中实现任何类型的全局 Windows 挂钩:http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2017-06-27
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    相关资源
    最近更新 更多