是否可以使用 RMagick 在其他应用程序窗口上绘制叠加层?

发布于 2024-11-06 01:25:45 字数 269 浏览 4 评论 0原文

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

我基本上需要帮助探索选项,因为与执行此类操作相关的信息似乎很少。因此,如果这涉及到我必须访问特定的 C 库或其他内容,那也没关系。我只是有点不知道从哪里开始。

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

I am building a desktop app that will put a simple graphical HUD on to other application windows. So basically I need for my app to be able to access another app as the parent, and then build out the HUD on top of it. Is this possible with RMagick? If not, is there something else in ruby that would do what I needed?

I basically need help exploring options, since there seems to be very little information related to doing something like this. So if that involves the fact that I have to access a specific C library or something, that is fine. I'm just a little lost on where to start.

EDIT: can someone comment on why this is getting no responses whatsoever? Is it just that unique of a requirement?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

森林散布 2024-11-13 01:25:45

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

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

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

Are you trying to create an overlay on top of an existing application window, similar to what Xfire, Raptr, Steam, or Fraps do? If you are doing this on Windows, and want to overlay full screen DirectX apps such as video or games, you would need to hook DirectDraw. This is a rather old library that appears unsupported but it could serve as a starting point: http://directdrawoverlaylib.codeplex.com/

If you just want to overlay a standard (not DirectX) app, you might just make your app use a borderless, transparent window on which you can paint your content. Then, track the movement of the "parent" window so you can move your child window accordingly. Here's an example of using the "Layered Window" feature in Windows to make transparent windows. http://msdn.microsoft.com/en-us/library/ms997507.aspx But you could do the same on OSX with the appropriate Cocoa APIs.

I don't think RMagick will help you here, and what you need to do will be OS specific so you're going to have to dabble with native code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文