1

我正在构建一个桌面应用程序,它将一个简单的图形 HUD 放在其他应用程序窗口上。所以基本上我需要让我的应用程序能够以父级身份访问另一个应用程序,然后在其上构建 HUD。RMagick 有可能吗?如果没有,红宝石中是否还有其他东西可以满足我的需求?

我基本上需要帮助探索选项,因为与做这样的事情相关的信息似乎很少。因此,如果这涉及到我必须访问特定的 C 库或其他东西,那很好。我只是有点迷失在哪里开始。

编辑:有人可以评论为什么这没有得到任何回应吗?它只是一个独特的要求吗?

4

1 回答 1

2

您是否尝试在现有应用程序窗口的顶部创建覆盖,类似于 Xfire、Raptr、Steam 或 Fraps 所做的?如果您在 Windows 上执行此操作,并且想要覆盖全屏 DirectX 应用程序(例如视频或游戏),则需要挂钩 DirectDraw。这是一个相当旧的库,似乎不受支持,但可以作为起点:http ://directdrawoverlaylib.codeplex.com/

如果您只想覆盖一个标准(不是 DirectX)应用程序,您可以让您的应用程序使用一个无边框的透明窗口,您可以在该窗口上绘制您的内容。然后,跟踪“父”窗口的移动,以便您可以相应地移动子窗口。这是使用 Windows 中的“分层窗口”功能制作透明窗口的示例。 http://msdn.microsoft.com/en-us/library/ms997507.aspx但是您可以在 OSX 上使用适当的 Cocoa API 执行相同的操作。

我认为 RMagick 不会在这里帮助您,您需要做的将是特定于操作系统的,因此您将不得不涉足本机代码。

于 2011-05-23T20:00:15.073 回答