Можно ли использовать RMagick для рисования наложений на окна других приложений? - PullRequest
1 голос
/ 11 мая 2011

Я создаю настольное приложение, которое будет помещать простой графический HUD в окна других приложений.Поэтому в основном мне нужно, чтобы мое приложение могло иметь доступ к другому приложению в качестве родительского, а затем создать HUD поверх него.Это возможно с RMagick?Если нет, есть ли в ruby ​​что-нибудь еще, что бы делало то, что мне нужно?

Мне в основном нужна помощь в изучении вариантов, так как, похоже, очень мало информации, связанной с выполнением чего-то подобного.Так что, если это связано с тем, что я должен получить доступ к определенной библиотеке C или что-то, это нормально.Я просто немного растерялся, с чего начать.

РЕДАКТИРОВАТЬ: кто-то может прокомментировать, почему это не получает никаких ответов вообще?Это уникальное требование?

1 Ответ

2 голосов
/ 24 мая 2011

Вы пытаетесь создать оверлей поверх существующего окна приложения, аналогично тому, что делают Xfire, Raptr, Steam или Fraps?Если вы делаете это в Windows и хотите наложить полноэкранные приложения DirectX, такие как видео или игры, вам нужно подключить DirectDraw.Это довольно старая библиотека, которая кажется неподдерживаемой, но она может послужить отправной точкой: http://directdrawoverlaylib.codeplex.com/

Если вы просто хотите наложить стандартное (не DirectX) приложение, вы можете просто заставить его использовать приложение без полейпрозрачное окно, на котором вы можете нарисовать свой контент.Затем отследите движение «родительского» окна, чтобы вы могли соответствующим образом переместить свое дочернее окно.Вот пример использования функции «Многоуровневое окно» в Windows для создания прозрачных окон.http://msdn.microsoft.com/en-us/library/ms997507.aspx Но вы могли бы сделать то же самое в OSX с соответствующими API-интерфейсами Cocoa.

Я не думаю, что RMagick поможет вам в этом, и что вам нужно сделать, будет зависеть от конкретной ОС, так что вы 'нам придется побаловаться с нативным кодом.

...