Можно ли использовать RMagick для рисования наложений на окна других приложений?

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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам